الدرس 6 من 10

اختياري وللقراءة فقط

هدف الدرس

ما قد يغيب وما لا يتغيّر

01

الشرح

ليس كل حقل موجودًا دائمًا. bio?: string يعني أن النبذة قد تغيب، فنوعها عند القراءة string | undefined، ويرفض المترجم p.bio.trim() حتى تتأكّد من وجودها.

وreadonly id: number يمنع إعادة الإسناد بعد الإنشاء: المعرّف يُكتب مرّة ولا يتغيّر. لكنه قيد عند الترجمة فقط، لا يجمّد الكائن عند التشغيل كما يفعل Object.freeze.

والفخ علامة التأكيد !: p.bio!.trim() تُسكت المترجم ولا تمنع الانهيار. تعامل مع الغياب فعلًا، بشرط أو بـ ?. و??.

02

المطلوب

اجعل bio اختياريًّا وid للقراءة فقط، ثم أصلح card: بلا نبذة تُرجع displayName وحده، ومع نبذة تُرجع displayName + " — " + bio بعد تشذيب النبذة بـ trim.

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

5 معايير
  1. لا أخطاء أنواع
  2. bio يجوز إغفاله
  3. id لا يُعاد إسناده
  4. card بلا نبذة تُرجع الاسم وحده
  5. card بنبذة تضيفها بعد تشذيبها
main.ts
المخرجاتTypeScript 5.9

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

–/5

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

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