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

اختبار الوحدة: الأنواع أداةً للتصميم

خمسة أسئلة عن هذه الوحدة. أجب عنها كلها، ثم شاهد نتيجتك وسبب صحة كل إجابة أو خطئها.

السؤال 1 من 5

يخشى مراجع أن يصل رقم البطاقة إلى saveAddress. ما الصحيح؟

TypeScript
type Address = { line1: string; city: string };
function saveAddress(a: Address) { /* sends a to the address service */ }
const form = { line1: '12 Nile St', city: 'Cairo', cardNumber: '4242 4242 4242 4242' };
saveAddress(form);
السؤال 2 من 5

قيمة quantityInStock هي null أثناء فحص المخزون، و0 حين ينفد المنتج. أيّ تغيير يجعل هذه التسمية صحيحة؟

TypeScript
function stockLabel(quantityInStock: number | null): string {
  if (!quantityInStock) return 'Checking stock…';
  return quantityInStock === 0 ? 'Sold out' : `${quantityInStock} left`;
}
السؤال 3 من 5

يضيف Cartwheel المدفوعات. الدفعة المعلّقة ليس لها معرّف تحصيل؛ والمحصَّلة لها دائمًا captureId؛ والمستردّة لها دائمًا captureId وrefundedAt وrefundCents. أيّ نوع يجعل التركيبات المستحيلة تفشل في الترجمة؟

السؤال 4 من 5

ما هو ShippingMethod؟

TypeScript
const SHIPPING_FEES = { standard: 499, express: 1299 } satisfies Record<string, number>;
type ShippingMethod = keyof typeof SHIPPING_FEES;
السؤال 5 من 5

في switch (order.status) حالة case 'canceled': بحرف L واحد، ولا تتطابق أبدًا. أيّ تغيير يحوّل هذا الخطأ الإملائي إلى خطأ ترجمة؟

5 أسئلة بلا إجابة