NahdaAIنهضة
TypeScript • المستوى الأول • الدرس 3

تعريف الدوال وأنواع الإرجاع (Functions & Return Types)

العودة لفهرس المستوى

أهداف الدرس العلمية

  • تخصيص أنواع المعاملات (Parameters) لمنع إدخال قيم خاطئة أثناء الاستدعاء.
  • تحديد نوع المخرجات الصريحة عبر الصياغة function name(): type.
  • استخدام النوع الخاص void مع الدوال التي لا ترجع أي قيمة (مثل إرسال التنبيهات والطباعة).
  • تجنب الأخطاء المنطقية الناتجة عن اختلاف أنواع القيم المرجعة.

1. أنماط الدوال الصارمة بـ TypeScript

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

typescript
// صياغة الدالة الكاملة بـ TypeScript
function multiply(a: number, b: number): number {
  return a * b; // ✅ القيمة المرجعة يجب أن تكون رقمية حصراً
}

// ⛔ خطأ في نوع المخرجات:
function invalidReturn(a: number): string {
  return a * 2; // Type 'number' is not assignable to type 'string'.
}

2. نوع الإرجاع Void

📢 ما هو Void؟

يُستخدم للتعبير عن عدم وجود قيمة مرجعة من الدالة، ويُستعمل بشكل أساسي في الدوال التي تقوم بعملية تنفيذية جانبية مثل console.log أو كتابة الملفات.

🛡️ منع الأخطاء المنطقية

إذا حاولت استخدام ناتج دالة ترجع void بداخل حسابات رياضية أو متغيرات، ستمنعك TypeScript فوراً قبل تشغيل التطبيق.

التطبيق العملي المباشر

تحدي الدرس الثالث: إنشاء دالة حساب الخصم

قم بالتعديل على الكود بداخل المحرر أدناه لتنفيذ ما يلي:

  1. قم بإنشاء دالة جديدة باسم applyDiscount تقبل معاملين: price: number و discountRatio: number.
  2. حدد نوع القيمة المرجعة من الدالة applyDiscount ليكون number صريحاً.
  3. اجعل الدالة تحسب السعر بعد الخصم وترجعه بالصيغة: price - (price * discountRatio).
  4. قم باستدعاء الدالة وطباعة الناتج بـ console.log، ثم اضغط "تشغيل الكود".
⏳ جارٍ تحميل المحرر التفاعلي...