الدرس 4 من 10

اشتقاق الأنواع

هدف الدرس

مصدر واحد للحقيقة

01

الشرح

عندك User واحد، وتحتاج منه أشكالًا: تحديثًا جزئيًّا، وبطاقة مختصرة، ومستخدمًا جديدًا لم يأخذ id بعد. نسخها يدويًّا يصلح يومًا واحدًا — ثم يتغيّر User وتبقى النسخ على حالها، بلا خطأ واحد يدلّك عليها.

أنواع الأدوات تشتقّ بدل أن تنسخ: Partial<T> تجعل كل الحقول اختيارية، وPick<T, "a" | "b"> تأخذ حقولًا بعينها، وOmit<T, "a"> تأخذ كل شيء عداها، وRecord<K, V> تبني كائنًا مفاتيحه K وقيمه V.

والمشتقّ يتبع أصله: غيّر نوع id في User فتتغيّر معه كل الأنواع المشتقّة، ويظهر كل كود لم يعد يوافقها خطأً في الحال.

02

المطلوب

اشتقّ الأربعة من User: UserPatch كل حقوله اختيارية، وUserPreview فيه id وname فقط، وNewUser كل شيء عدا id، وRoleCounts عدد لكل قيمة من User["role"].

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

5 معايير
  1. لا أخطاء أنواع
  2. UserPatch: أي حقل وحده، وبنوعه الصحيح
  3. UserPreview فيه id وname فقط
  4. NewUser: كل الحقول عدا id
  5. RoleCounts: عدد لكل دور بلا نقص
main.ts
المخرجاتTypeScript 5.9

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

–/5

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

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