Menu
CoddyTech
flag Ar iconالعربيةdown icon

القيم الافتراضية للمعاملات

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

بينما تتيح لك المعلمات الاختيارية اختيار ما إذا كنت تريد تقديم قيمة أم لا، فإن المعلمات الافتراضية تذهب بهذا المفهوم إلى أبعد من ذلك من خلال توفير قيمة احتياطية تلقائيًا عند عدم تمرير أي وسيط. وهذا يجعل الدوال أكثر ملاءمة للاستخدام مع الحفاظ على سلامة الأنواع.

لإنشاء معلمة افتراضية، تقوم بتعيين قيمة مباشرة في توقيع الدالة باستخدام علامة التساوي. يستنتج TypeScript تلقائيًا نوع المعلمة من القيمة الافتراضية:

function greet(name: string, greeting = "Hello"): string {
  return greeting + ", " + name;
}

function calculateArea(width: number, height = 10): number {
  return width * height;
}

في هذه الأمثلة، تكون قيمة greeting الافتراضية هي "Hello" (يتم استنتاجه كـ string) وتكون قيمة height الافتراضية هي 10 (يتم استنتاجه كـ number). عند استدعاء greet("Alice")، فإنه يستخدم التحية الافتراضية تلقائيًا، ولكن لا يزال بإمكانك تجاوزها باستخدام greet("Alice", "Good morning").

المعاملات الافتراضية هي اختيارية فعلياً - لا تحتاج إلى استخدام صيغة ? لأن القيمة الافتراضية تضمن أن المعامل يمتلك دائماً قيمة. هذا النهج أنظف من المعاملات الاختيارية عندما يكون لديك قيمة افتراضية منطقية، حيث أنه يلغي الحاجة للتحقق من undefined داخل الدالة الخاصة بك.

challenge icon

التحدي

سهل

أنشئ دالة باسم calculateTax تأخذ معاملين: price من النوع number (مطلوب) و rate من النوع number بقيمة افتراضية هي 0.05. يجب أن تعيد الدالة مبلغ الضريبة كرقم مع تحديد نوع القيمة المرجعة بشكل صريح.

يجب أن تحسب الدالة الضريبة بضرب السعر في المعدل.

أنشئ دالة أخرى باسم formatGreeting تأخذ معاملين: name من النوع string (مطلوب) و timeOfDay من النوع string بقيمة افتراضية هي "Hello". يجب أن تعيد الدالة سلسلة نصية للترحيب منسقة مع تحديد نوع القيمة المرجعة بشكل صريح.

يجب أن تعيد الدالة الترحيب بالتنسيق التالي: "[timeOfDay], [name]!"

أنشئ دالة ثالثة باسم calculateShipping تأخذ ثلاثة معاملات: weight من النوع number (مطلوب)، و distance من النوع number (مطلوب)، و expedited من النوع boolean بقيمة افتراضية هي false. يجب أن تعيد الدالة تكلفة الشحن كرقم مع تحديد نوع القيمة المرجعة بشكل صريح.

يجب أن تحسب الدالة تكلفة الشحن باستخدام هذه الصيغة: (weight * 0.5) + (distance * 0.1). إذا كانت قيمة expedited هي true، اضرب النتيجة في 2.

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

  • استدعِ calculateTax مع 100 (باستخدام المعدل الافتراضي)
  • استدعِ calculateTax مع 200 و 0.08
  • استدعِ formatGreeting مع "Alice" (باستخدام وقت اليوم الافتراضي)
  • استدعِ formatGreeting مع "Bob" و "Good morning"
  • استدعِ calculateShipping مع 5 و 100 (باستخدام قيمة الشحن السريع الافتراضية)
  • استدعِ calculateShipping مع 3، و 50، و true

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

جرّب بنفسك

// TODO: اكتب الكود الخاص بك هنا

// أنشئ دالة calculateTax


// أنشئ دالة formatGreeting


// أنشئ دالة calculateShipping


// اختبر الدوال واطبع النتائج
quiz iconاختبر نفسك

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

جميع دروس مقدمة إلى TypeScript

تدرّب بنفسك: Playground لـ TypeScript