اختبار الأساسيات
Basics Quiz
اختبار
~18 دقيقة
المستوى: مبتدئ
اختبار الأساسيات — Basics Quiz
هذا اختبار عملي للأساسيات. لا تطبع الناتج النهائي مباشرة إذا كان المطلوب تدريباً على دالة أو حلقة. الهدف أن ترى كيف تساعد الأنواع على كتابة خطوة صحيحة: array من أرقام، دالة ترجع رقم، ثم رسالة نصية مستقرة.
راجع قبل الحل: هل اخترت نوعاً مناسباً؟ هل اسم الدالة يشرح دورها؟ هل القيمة المرجعة أوضح من الطباعة داخل الدالة؟ هذه الأسئلة الصغيرة تبني عادة TypeScript الصحيحة.
مثال مراجعة
index.ts
Output:
في المثال، النوع LessonProgress يجعل كل عنصر في القائمة واضح الشكل. لو نسيت minutes، يظهر الخطأ قبل التشغيل.
التحدي
أكمل الدالة لتجمع الأسعار باستخدام reduce (الأسلوب الوظيفي الذي يحافظ على شكل البيانات).
تحدي — Challenge
✓ محلول
استخدم cart.reduce لجمع price لكل عنصر
مراجعة المفاهيم
التحدي اختبر يدك. هذه الأسئلة تختبر القرار الذي يسبق الكتابة. أجب قبل أن تنظر إلى الشرح.
سؤال — Question
النوع
LessonProgress[] يجعل شكل كل عنصر عقداً يفحصه المترجم: عنصر ينقصه minutes أو يحمل نصاً مكان رقم يظهر خطأً تحت مؤشرك قبل أي تشغيل. بلا النوع، الخطأ نفسه يعيش حتى يصل إلى reduce فيعطي NaN أو سلوكاً غريباً وقت التشغيل.سؤال — Question
الوسيط الثاني
0 هو قيمة البداية للمُجمِّع. بدونه يأخذ reduce أول عنصر بداية — فينهار على المصفوفة الفارغة برمي خطأ، ويربك الأنواع حين يكون المجمِّع نوعاً مختلفاً عن العناصر. سلة مشتريات فارغة مجموعها صفر حالة طبيعية تماماً، والقيمة الابتدائية هي ما يجعلها تعمل.سؤال — Question
الدالة التي تُرجع رقماً تترك قرار العرض لمن استدعاها: تستطيع طباعته، تنسيقه بعملة، إرساله في استجابة API، أو مقارنته في اختبار مثل
totalPrice(items) === 60. الدالة التي تطبع داخلها خلطت الحساب بالعرض — وصار اختبارها يتطلب اعتراض الطرفية.استرجع الآن الأدوات نفسها من ذاكرتك — لا التعرف عليها بين خيارات.
أكمل الفراغ — Fill in the blank
reduce تطوي المصفوفة إلى قيمة واحدة عبر مُجمِّع — مجموع أسعار، أطول اسم، قاموس تكرارات. مع قيمة بداية صريحة تصبح آمنة على المصفوفة الفارغة أيضاً.أكمل الفراغ — Fill in the blank
type LessonProgress = {...} (أو interface) يعطي شكل الكائن اسماً يُعاد استخدامه في كل تصريح — والفرق بينهما تفصيل متقدم؛ المهم أن للشكل اسماً واحداً يفحصه المترجم في كل مكان.