EduFlow
أنماط TypeScript المتقدّمة

الاختبار النهائي

اثنا عشر سؤالًا تغطي الدورة كلها. احصل على 70% أو أكثر لتنجح وتفتح شهادتك. يمكنك إعادته متى شئت.

أنهِ كل الدروس لتحصل على الشهادة، ويمكنك خوض الاختبار في أي وقت.

السؤال 1 من 12

أيّ زوج من التغييرات يجعل cancelOrder(customer.id) وadd(usdPrice, eurShipping) كليهما خطأ ترجمة؟

السؤال 2 من 12

ما نوع summary؟

TypeScript
function pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> { /* … */ }
const summary = pick(order, 'id', 'status');
السؤال 3 من 12

سلة محفوظة لعميل في localStorage كتبها إصدار العام الماضي من التطبيق، بشكل مختلف. ما الطريقة الصحيحة لتحميلها؟

السؤال 4 من 12

ما هو NoNulls<{ coupon: string | null; note?: string }>؟

TypeScript
type NoNulls<T> = { [K in keyof T]: NonNullable<T[K]> };
السؤال 5 من 12

يضيف فريق المدفوعات 'requires-3ds' إلى الـ union المسمّى PaymentError. الدالة errorMessage(e: PaymentError): string تتفرّع على e.type دون default. ماذا يحدث؟

السؤال 6 من 12

أيّ نص قابل للإسناد إلى type OrderPath = `/orders/${number}`؟

السؤال 7 من 12

بعد تفعيل noUncheckedIndexedAccess، أيّ سطر يصبح خطأ ترجمة (مع lines: Line[])؟

السؤال 8 من 12

زُخرفت charge بـ @retry(3) في السطر الذي فوق @logged. تفشل البوابة مرتين ثم تنجح. كم سطر تسجيل تطبع logged لاستدعاء واحد؟

السؤال 9 من 12

لماذا يمكن تمرير DetailedOrder (id وstatus وtotalCents وcustomer) حيث يُنتظر Order (id وstatus وtotalCents)، والعكس غير ممكن؟

السؤال 10 من 12

أيّ توقيع هو تحويل غير مفحوص متنكّر؟

السؤال 11 من 12

ماذا يفعل declare module 'legacy-shipping-calc'; دون جسم؟

السؤال 12 من 12

أيّ ملف يجب أن تحوّله إلى TypeScript أولًا في عملية ترحيل؟

12 سؤالًا بلا إجابة