الدرس 6 من 10
اختياري وللقراءة فقط
- 11 دقيقة
- 5 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
ما قد يغيب وما لا يتغيّر
الشرح
ليس كل حقل موجودًا دائمًا. bio?: string يعني أن النبذة قد تغيب، فنوعها عند القراءة string | undefined، ويرفض المترجم p.bio.trim() حتى تتأكّد من وجودها.
وreadonly id: number يمنع إعادة الإسناد بعد الإنشاء: المعرّف يُكتب مرّة ولا يتغيّر. لكنه قيد عند الترجمة فقط، لا يجمّد الكائن عند التشغيل كما يفعل Object.freeze.
والفخ علامة التأكيد !: p.bio!.trim() تُسكت المترجم ولا تمنع الانهيار. تعامل مع الغياب فعلًا، بشرط أو بـ ?. و??.
المطلوب
اجعل bio اختياريًّا وid للقراءة فقط، ثم أصلح card: بلا نبذة تُرجع displayName وحده، ومع نبذة تُرجع displayName + " — " + bio بعد تشذيب النبذة بـ trim.
معايير التصحيح
5 معايير- لا أخطاء أنواع
- bio يجوز إغفاله
- id لا يُعاد إسناده
- card بلا نبذة تُرجع الاسم وحده
- card بنبذة تضيفها بعد تشذيبها