Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

دالة: إضافة عناصر إلى المخزون

جزء من قسم مقدمة إلى TypeScript في رحلة JavaScript على Coddy. الدرس 64 من 73.

challenge icon

التحدي

سهل

لقد تم تزويدك بما يلي من التحدي السابق:

  • الواجهة العامة InventoryItem<T> مع الخصائص id و quantity و details
  • ثلاثة عناصر مخزون: bookItem و electronicItem و clothingItem

أنشئ دالة عامة باسم addItem تقوم بإضافة عنصر جديد إلى مصفوفة مخزون موجودة.

يجب أن تقوم الدالة بما يلي:

  • استخدام معامل نوع عام T
  • قبول معامل inventory من النوع InventoryItem<T>[]
  • قبول معامل newItem من النوع InventoryItem<T>
  • إرجاع مصفوفة جديدة من النوع InventoryItem<T>[] تحتوي على جميع العناصر الموجودة بالإضافة إلى العنصر الجديد
  • أن تحتوي على توضيح صريح لنوع القيمة المرجعة

أنشئ المصفوفات التالية واختبر دالتك:

  • أنشئ bookInventory كمصفوفة تحتوي فقط على bookItem
  • أنشئ newBook من النوع InventoryItem<{ title: string; author: string }> مع:
    • id: 4
    • quantity: 2
    • details: { title: "Advanced TypeScript", author: "Jane Smith" }
  • استخدم addItem لإضافة newBook إلى bookInventory وقم بتخزين النتيجة في updatedBookInventory
  • أنشئ electronicInventory كمصفوفة تحتوي فقط على electronicItem
  • أنشئ newElectronic من النوع InventoryItem<{ brand: string; model: string }> مع:
    • id: 5
    • quantity: 1
    • details: { brand: "GadgetCorp", model: "Z500" }
  • استخدم addItem لإضافة newElectronic إلى electronicInventory وقم بتخزين النتيجة في updatedElectronicInventory

اطبع المخرجات التالية:

  • اطبع طول updatedBookInventory
  • اطبع updatedBookInventory[1].details.title
  • اطبع updatedBookInventory[1].details.author
  • اطبع طول updatedElectronicInventory
  • اطبع updatedElectronicInventory[1].details.brand
  • اطبع updatedElectronicInventory[1].details.model
  • اطبع updatedElectronicInventory[0].id
  • اطبع updatedElectronicInventory[1].quantity

جرّب بنفسك

// Create the generic InventoryItem interface
interface InventoryItem<T> {
  id: number;
  quantity: number;
  details: T;
}

// Create the required objects
const bookItem: InventoryItem<{ title: string; author: string }> = {
  id: 1,
  quantity: 5,
  details: { title: "TypeScript Guide", author: "John Doe" }
};

const electronicItem: InventoryItem<{ brand: string; model: string }> = {
  id: 2,
  quantity: 3,
  details: { brand: "TechCorp", model: "X200" }
};

const clothingItem: InventoryItem<{ size: string; color: string }> = {
  id: 3,
  quantity: 10,
  details: { size: "M", color: "Blue" }
};

// Print the required outputs
console.log(bookItem.id);
console.log(bookItem.quantity);
console.log(bookItem.details.title);
console.log(bookItem.details.author);
console.log(electronicItem.details.brand);
console.log(electronicItem.details.model);
console.log(clothingItem.details.size);
console.log(clothingItem.details.color);

جميع دروس مقدمة إلى TypeScript

تدرّب بنفسك: مترجم JavaScript عبر الإنترنت