NahdaAIنهضة
TypeScript • المستوى الرابع • الدرس 1

ضبط إعدادات المترجم والتأمين (tsconfig.json & Strict Mode)

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

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

  • فهم أهمية خيارات المترجم داخل ملف tsconfig.json.
  • تفعيل وضع الصرامة "strict": true وميزة strictNullChecks للحماية القصوى.
  • إتقان أنماط الحماية من null: if (product) و if (!product) و product?..
  • كتابة دوال تُعيد قيمة افتراضية آمنة عند تمرير null بدل الانهيار.

1. قوة الملف tsconfig.json

يُعد قلب مشروع TypeScript، حيث يحدد كيفية ترجمة الأكواد إلى JavaScript متوافقة مع المتصفحات، وتعيين قواعد الصرامة التي تمنع كتابة أي أنواع غامضة أو غير محددة.

json
{
  "compilerOptions": {
    "strict": true,
    "strictNullChecks": true,
    "noImplicitAny": true,
    "target": "ES2020",
    "module": "ESNext"
  }
}

2. أنماط الحماية من القيم الفارغة

✅ النمط الإيجابي (Guard Clause)

افحص وجود القيمة قبل استخدامها:

if (product) { product.price }
✅ النمط العكسي (Early Return)

اخرج مبكراً عند غياب القيمة:

if (!product) return 0;
التطبيق العملي المباشر

تحدي الدرس الأول: إضافة دالة حساب الخصم الآمنة

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

  1. أضف دالة calculateDiscount تقبل معاملين: product: Product | null و discountPercent: number.
  2. اجعل نوع الإرجاع number صريحاً.
  3. استخدم نمط Early Return: إذا كان !product أعد 0 مباشرة.
  4. احسب السعر بعد الخصم بالصيغة: product.price - (product.price * discountPercent / 100).
  5. استدع الدالة مرتين (مرة بكائن ومرة بـ null) واطبع النتيجتين بـ console.log.
⏳ جارٍ تحميل المحرر التفاعلي...