Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تحديد أنواع Rest Parameters

جزء من قسم Introduction To TypeScript في رحلة JavaScript على Coddy. الدرس 27 من 73.

يوفر TypeScript rest parameters للتعامل مع هذا السيناريو بأناقة مع الحفاظ على سلامة الأنواع.

تستخدم معاملات البقية (Rest parameters) عامل النشر (...) متبوعاً باسم المعامل ومصفوفة محددة النوع. يقوم هذا بجمع كافة الوسائط المتبقية في معامل مصفوفة واحد:

function sum(...numbers: number[]): number {
  let total = 0;
  for (const num of numbers) {
    total += num;
  }
  return total;
}

// يمكن استدعاؤها بأي عدد من الوسائط
sum(1, 2);           // 3
sum(1, 2, 3, 4, 5);  // 15

يجب أن يكون معامل rest دائماً هو المعامل الأخير في توقيع الدالة. تضمن TypeScript أن جميع الوسائط الممررة إلى معامل rest تطابق نوع المصفوفة المحدد، مما يمنحك مرونة الوسائط المتغيرة مع أمان الكتابة الثابتة (static typing).

challenge icon

التحدي

سهل

قم بإنشاء دالة باسم sumAll تستخدم معاملات الباقي (rest parameters) لقبول أي عدد من الوسائط الرقمية وتعيد مجموعها كـ number. يجب أن تحتوي الدالة على تعليق توضيحي صريح لنوع القيمة المعادة (return type annotation).

قم بإنشاء دالة أخرى باسم findMaximum تستخدم معاملات الباقي لقبول أي عدد من الوسائط الرقمية وتعيد أكبر قيمة بينها كـ number. يجب أن تحتوي الدالة على تعليق توضيحي صريح لنوع القيمة المعادة.

قم بإنشاء دالة ثالثة باسم concatenateStrings تأخذ معامل separator مطلوب من نوع string، يليه معاملات الباقي التي تقبل أي عدد من الوسائط النصية. يجب أن تعيد الدالة جميع الوسائط النصية مدمجة معاً مع وجود الفاصل (separator) بينها. يجب أن تحتوي الدالة على تعليق توضيحي صريح لنوع القيمة المعادة من نوع string.

اختبر دوالك عن طريق استدعائها بالقيم التالية وطباعة النتائج:

  • استدعِ sumAll مع 5، و 10، و 15
  • استدعِ sumAll مع 1، و 2، و 3، و 4، و 5
  • استدعِ findMaximum مع 8، و 3، و 12، و 7
  • استدعِ findMaximum مع 25 و 18
  • استدعِ concatenateStrings مع "-" كفاصل و "apple"، و "banana"، و "cherry"
  • استدعِ concatenateStrings مع " | " كفاصل و "red"، و "green"، و "blue"، و "yellow"

اطبع كل نتيجة في سطر منفصل بالترتيب المحدد أعلاه.

جرّب بنفسك

// TODO: اكتب كودك هنا

// إنشاء دالة sumAll باستخدام معاملات البقية (rest parameters)


// إنشاء دالة findMaximum باستخدام معاملات البقية (rest parameters)


// إنشاء دالة concatenateStrings باستخدام الفاصل ومعاملات البقية (rest parameters)


// اختبار الدوال وطباعة النتائج
console.log(sumAll(5, 10, 15));
console.log(sumAll(1, 2, 3, 4, 5));
console.log(findMaximum(8, 3, 12, 7));
console.log(findMaximum(25, 18));
console.log(concatenateStrings("-", "apple", "banana", "cherry"));
console.log(concatenateStrings(" | ", "red", "green", "blue", "yellow"));
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Introduction To TypeScript

تدرّب بنفسك: مترجم JavaScript عبر الإنترنت