الدرس 7 من 10
الأنواع الحرفية
- 10 دقائق
- 6 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
مجموعة قيم مغلقة
الشرح
القيمة الحرفية نوع بذاتها: النوع "md" لا يقبل إلا النصّ "md". واتحاد حرفيات مثل "sm" | "md" | "lg" يصف مجموعة مغلقة من القيم، وهو ما يُستعمل له enum في لغات أخرى، ويُمحى عند الترجمة فلا يضيف كودًا.
والفائدة أن الخطأ الإملائي يصير خطأ أنواع. padding("xl") يُرجع اليوم 16 بصمت، لأن return 16 الأخيرة تلتقط كل ما سوى "sm" و"md". وبعد التوصيف يُرفض قبل التشغيل.
والفخ هو الاتّساع الذي مرّ في درس الاستنتاج: let preferred = "lg" نوعها string لا "lg"، فلا تُقبل حيث يُطلب Size. استعمل const، أو صِف المتغيّر صراحة: let preferred: Size = "lg".
المطلوب
عرّف type Size بالقيم الثلاث واجعله نوع مُعامل padding، ثم أصلح ما يكشفه المترجم: preferred، والسطر الذي يمرّر "xl".
معايير التصحيح
6 معايير- لا أخطاء أنواع
- Size يقبل القيم الثلاث
- ويرفض ما سواها
- padding ترفض القيمة الخاطئة
- preferred تُقبل حيث يُطلب Size
- padding تُرجع 4 و8 و16