الدرس 3 من 10

keyof والوصول المفهرس

هدف الدرس

مفتاح موجود وقيمة بنوعها

01

الشرح

إن كان type User = { id: number; email: string } فإن keyof User هو الاتحاد الحرفي "id" | "email". والوصول المفهرس يسير في الاتجاه المعاكس: User["email"] هو string.

اجمعهما في عمومية: function getProp<T, K extends keyof T>(obj: T, key: K): T[K]. المفتاح غير الموجود يصير خطأ ترجمة، والناتج يأخذ نوع الحقل الذي طلبته بالضبط.

والفخّ أن تكتب key: keyof T وناتجًا T[keyof T]: هذا اتحاد كل القيم، فيصير البريد string | number. المُعامل الثاني K هو الذي يتذكّر أيّ مفتاح مرّرت.

02

المطلوب

أعد كتابة getProp بلا any: ترفض المفتاح غير الموجود في الكائن، ويكون ناتجها نوع الحقل المطلوب.

معايير التصحيح

5 معايير
  1. لا أخطاء أنواع
  2. تُرجع قيمة الحقل
  3. الناتج بنوع الحقل المطلوب بالضبط
  4. المفتاح غير الموجود خطأ ترجمة
  5. والحقل الرقمي لا يُسنَد إلى نصّ
main.ts
المخرجاتTypeScript 5.9

جارٍ تحميل مترجم TypeScript… مرّة واحدة ثم يحفظه المتصفح.

–/5

يبدأ الفحص حين تجهز البيئة.

5 معايير في بطاقة «المطلوب».