الدرس 4 من 10
اشتقاق الأنواع
- 14 دقيقة
- 5 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
مصدر واحد للحقيقة
الشرح
عندك User واحد، وتحتاج منه أشكالًا: تحديثًا جزئيًّا، وبطاقة مختصرة، ومستخدمًا جديدًا لم يأخذ id بعد. نسخها يدويًّا يصلح يومًا واحدًا — ثم يتغيّر User وتبقى النسخ على حالها، بلا خطأ واحد يدلّك عليها.
أنواع الأدوات تشتقّ بدل أن تنسخ: Partial<T> تجعل كل الحقول اختيارية، وPick<T, "a" | "b"> تأخذ حقولًا بعينها، وOmit<T, "a"> تأخذ كل شيء عداها، وRecord<K, V> تبني كائنًا مفاتيحه K وقيمه V.
والمشتقّ يتبع أصله: غيّر نوع id في User فتتغيّر معه كل الأنواع المشتقّة، ويظهر كل كود لم يعد يوافقها خطأً في الحال.
المطلوب
اشتقّ الأربعة من User: UserPatch كل حقوله اختيارية، وUserPreview فيه id وname فقط، وNewUser كل شيء عدا id، وRoleCounts عدد لكل قيمة من User["role"].
معايير التصحيح
5 معايير- لا أخطاء أنواع
- UserPatch: أي حقل وحده، وبنوعه الصحيح
- UserPreview فيه id وname فقط
- NewUser: كل الحقول عدا id
- RoleCounts: عدد لكل دور بلا نقص