الدرس 1 من 10
الأنواع العامّة
- 13 دقيقة
- 6 فحوص
- 3 تلميحات
- إلى المطلوب
هدف الدرس
نوع الناتج يتبع نوع المُدخل
الشرح
لنفترض أن عندك دالة تُرجع أول عنصر من مصفوفة، فما نوع ما تُرجعه؟ لو كتبت any لخسرت فائدة الأنواع كلها، لأن المترجم لن يعرف بعدها أن أول عنصر في string[] نصّ.
الأنواع العامّة (generics) تجعل النوع نفسه مُعاملًا تمرّره للدالة، هكذا: function first<T>(xs: T[]): T | undefined، فإذا مرّرت مصفوفة نصوص صار T نصًّا تلقائيًّا، وإذا مرّرت أرقامًا صار رقمًا.
أما | undefined فلم توضع للزينة، لأن المصفوفة الفارغة ليس فيها عنصر أول، وهذا النوع يُلزم من يستدعي الدالة بأن يتعامل مع هذه الحالة.
المطلوب
اجعل first دالة عامّة، بحيث يتبع نوعُ ما تُرجعه نوعَ المصفوفة التي تمرّرها لها.
الفحوص
6 فحوص- لا توجد أخطاء في الأنواع
- تُرجع أوّل عنصر
- المصفوفة الفارغة تُرجع undefined
- مع مصفوفة نصوص يكون الناتج نصًّا
- الناتج لا يُعامَل على أنه رقم
- الناتج قد يكون undefined فلا يُسنَد إلى string وحده