Fonksiyon: Envantere Öğe Ekle
Coddy'nin JavaScript Journey'sinin TypeScript'e Giriş bölümünün bir parçası — ders 64 / 73.
Görev
KolayÖnceki meydan okumadan size aşağıdakiler sağlanmıştır:
id,quantityvedetailsözelliklerine sahip genel (generic) arayüzInventoryItem<T>- Üç envanter öğesi:
bookItem,electronicItemveclothingItem
Mevcut bir envanter dizisine yeni bir öğe ekleyen addItem adında genel (generic) bir fonksiyon oluşturun.
Fonksiyon şunları yapmalıdır:
- Genel bir tip parametresi olan
Tkullanmalıdır InventoryItem<T>[]tipinde birinventoryparametresi kabul etmelidirInventoryItem<T>tipinde birnewItemparametresi kabul etmelidir- Mevcut tüm öğeleri ve yeni öğeyi içeren
InventoryItem<T>[]tipinde yeni bir dizi döndürmelidir - Açık bir dönüş tipi belirtecine (return type annotation) sahip olmalıdır
Aşağıdaki dizileri oluşturun ve fonksiyonunuzu test edin:
- Sadece
bookItemiçeren bir dizi olarakbookInventoryoluşturun - Aşağıdaki özelliklere sahip
InventoryItem<{ title: string; author: string }>tipindenewBookoluşturun:id: 4quantity: 2details: { title: "Advanced TypeScript", author: "Jane Smith" }
newBooköğesinibookInventorydizisine eklemek içinaddItemkullanın ve sonucuupdatedBookInventoryiçinde saklayın
- Sadece
electronicItemiçeren bir dizi olarakelectronicInventoryoluşturun - Aşağıdaki özelliklere sahip
InventoryItem<{ brand: string; model: string }>tipindenewElectronicoluşturun:id: 5quantity: 1details: { brand: "GadgetCorp", model: "Z500" }
newElectronicöğesinielectronicInventorydizisine eklemek içinaddItemkullanın ve sonucuupdatedElectronicInventoryiçinde saklayın
Aşağıdaki çıktıları yazdırın:
updatedBookInventorydizisinin uzunluğunu yazdırınupdatedBookInventory[1].details.titledeğerini yazdırınupdatedBookInventory[1].details.authordeğerini yazdırınupdatedElectronicInventorydizisinin uzunluğunu yazdırınupdatedElectronicInventory[1].details.branddeğerini yazdırınupdatedElectronicInventory[1].details.modeldeğerini yazdırınupdatedElectronicInventory[0].iddeğerini yazdırınupdatedElectronicInventory[1].quantitydeğerini yazdırın
Kendin dene
// 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'e Giriş bölümündeki tüm dersler
1TS ile Başlarken
TypeScript Nedir?Neden TypeScript Kullanılır?İlk TypeScript KodunuzDerleme Süreci ve HatalarÖzet: TS'ye Giriş4Fonksiyonlarla Çalışmak
Parametre ve Dönüş Değerlerini TiplendirmeArrow Fonksiyonlarını Tiplendirme'void' Dönüş Tipi'?' ile Opsiyonel ParametrelerVarsayılan Parametre DeğerleriRest Parametrelerini TiplendirmeFonksiyon Tiplerini TanımlamaÖzet: Tiplendirilmiş Fonksiyonlar Oluşturma7Proje: Basit Bir Görev Listesi
Proje: Görev Struct'ını TanımlamaGörev Ekleme Fonksiyonu10Proje: Envanter Yönetimi
Proje: Genel Envanter ÖğesiFonksiyon: Envantere Öğe Ekle2Temel Tipler
Temel Tipler: str, num, boolean'any' Tipi: Kaçış Yolu'unknown' Tipi'null' ve 'undef' ile ÇalışmakTip Çıkarımı İş BaşındaAçık Tip BelirlemeleriÖzet: Temel Tipler Pratiği5Tipler: Takma Adlar, Unionlar ve Kesişimler
İlkel Tipler için Tip Takma AdlarıUnion Tipler ('|')Union Tipler ile ÇalışmakLiteral TiplerKesişim Tipleri ('&')Tip Takma Adlarını BirleştirmeÖzet: Gelişmiş Tip Kombinasyonları3Veri Yapısı: Diziler ve Tuple
Tipli DizilerDiziler için 'readonly' BelirleyicisiTuple Nedir?Tuple Tanımlama ve ErişmeTuple DestructuringReadonly Tuple'larÇok Boyutlu Tipli DizilerDizilerle Spread OperatörüÖzet: Diziler ve Tuple'lar6Nesneleri ve Interface'leri Tiplendirme
Satır İçi Nesne Tipi BelirtimleriNesneler için Type Alias KullanımıInterface'lere GirişInterface'ler ve Type Alias'ların KarşılaştırılmasıOpsiyonel ve Readonly ÖzelliklerInterface ve Tipleri GenişletmeInterface'lere Metot EklemeÖzet: Nesne Yapılarını Tanımlama