الدرس 8 من 10
حلقة على المفاتيح
- 14 دقيقة
- 5 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
نوع يُبنى من مفاتيح نوع
الشرح
Partial وReadonly ليستا سحرًا داخل المترجم، بل سطر واحد تستطيع كتابته. النوع المُعيَّن يمرّ على مفاتيح نوع آخر ويبني لكل مفتاح خاصية: { [K in keyof T]: boolean } يعطي كل حقل في T قيمة منطقية.
وعلى كل خاصية تضع المُعدِّلات: ? تجعلها اختيارية، وreadonly تمنع الكتابة عليها، و-? و-readonly تنزعانهما. والقيمة غير مقيّدة بـT[K]: ضع فيها أي نوع.
والمشتقّ يتبع أصله: أضف phone إلى النموذج فيصير له مكان رسالة خطأ من تلقاء نفسه. والفخّ أن readonly فحص ترجمة فقط، والكائن في التشغيل قابل للتعديل كما كان.
المطلوب
عرّف FormErrors<T>: لكل مفتاح في T رسالة نصّية اختيارية. وFrozen<T>: الخصائص نفسها بأنواعها، وكلها للقراءة فقط.
معايير التصحيح
5 معايير- لا أخطاء أنواع
- FormErrors: رسالة نصّية اختيارية لكل حقل
- ولا تقبل حقلًا ليس في النموذج
- Frozen تحفظ نوع كل قيمة
- والكتابة على Frozen خطأ ترجمة