Projekt: Generisches Inventar-Element
Teil des Abschnitts Einführung in TypeScript der JavaScript-Journey von Coddy. Lektion 63 von 73.
Willkommen zu Ihrem ersten TypeScript-Projekt! Sie werden ein generisches Bestandsverwaltungssystem erstellen, das die praxisnahe Leistungsfähigkeit von Generics demonstriert. Dieses Projekt wird Ihnen zeigen, wie Generics flexiblen, wiederverwendbaren Code erstellen können, der mit verschiedenen Datentypen funktioniert und gleichzeitig die volle Typsicherheit gewährleistet.
Die Grundlage jedes Inventarsystems besteht darin, zu definieren, wie ein Inventarartikel aussieht. In einem traditionellen Ansatz würden Sie möglicherweise separate Schnittstellen für Bücher, Elektronik, Kleidung und andere Produkttypen erstellen. Aber mit Generics können Sie eine flexible Struktur erstellen, die sich an jede Art von Produktdetails anpasst.
Deine erste Aufgabe besteht darin, eine generische Schnittstelle namens InventoryItem<T> zu erstellen. Diese Schnittstelle stellt die gemeinsame Struktur dar, die alle Inventarartikel gemeinsam haben: Sie benötigen eine id zur Identifizierung, eine quantity zur Erfassung der Lagerbestände und eine details-Eigenschaft, die beliebige produktspezifische Informationen aufnehmen kann.
Die Magie geschieht mit dem generischen Typparameter T. Dies ermöglicht es der Eigenschaft details, völlig flexibel zu sein – es könnten Buchinformationen, elektronische Spezifikationen oder beliebige andere Produktdaten sein –, während id und quantity über alle Inventargegenstände hinweg konsistent als Zahlen typisiert bleiben.
Aufgabe
EinfachErstelle eine generische Schnittstelle namens InventoryItem, die die Struktur eines beliebigen Bestandsartikels in deinem Verwaltungssystem darstellt.
Die Schnittstelle sollte:
- Einen generischen Typparameter
Tverwenden - Eine Eigenschaft
idvom Typnumberhaben - Eine Eigenschaft
quantityvom Typnumberhaben - Eine Eigenschaft
detailsvom TypThaben
Erstelle die folgenden Objekte mithilfe deiner generischen Schnittstelle:
bookItemvom TypInventoryItem<{ title: string; author: string }>mit:id: 1quantity: 5details: { title: "TypeScript Guide", author: "John Doe" }
electronicItemvom TypInventoryItem<{ brand: string; model: string }>mit:id: 2quantity: 3details: { brand: "TechCorp", model: "X200" }
clothingItemvom TypInventoryItem<{ size: string; color: string }>mit:id: 3quantity: 10details: { size: "M", color: "Blue" }
Gib die folgenden Ausgaben aus:
- Gib
bookItem.idaus - Gib
bookItem.quantityaus - Gib
bookItem.details.titleaus - Gib
bookItem.details.authoraus - Gib
electronicItem.details.brandaus - Gib
electronicItem.details.modelaus - Gib
clothingItem.details.sizeaus - Gib
clothingItem.details.coloraus
Probier es selbst
// TODO: Schreibe hier deinen Code
// Erstelle das InventoryItem-Interface und die erforderlichen Objekte
// Gib die erforderlichen Ausgaben aus
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);Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Einführung in TypeScript
1Erste Schritte mit TS
Was ist TypeScript?Warum TypeScript verwenden?Dein erster TypeScript-CodeKompilierungsprozess & FehlerZusammenfassung: Einführung in TS4Arbeiten mit Funktionen
Typisierung von Parametern & RückgabewertenTypisierung von Arrow-FunktionenDer Rückgabetyp 'void'Optionale Parameter mit '?'Standard-ParameterwerteTypisierung von Rest-ParameternDefinieren von FunktionstypenZusammenfassung: Typisierte Funktionen erstellen7Projekt: Eine einfache Aufgabenliste
Projekt: Task-Struct definierenFunktion zum Hinzufügen einer Aufgabe10Projekt: Bestandsverwaltung
Projekt: Generisches Inventar-ElementFunktion: Elemente zum Inventar hinzufügen2Basis-Typen
Basis-Typen: str, num, booleanDer 'any'-Typ: Der NotausgangDer 'unknown'-TypArbeiten mit 'null' & 'undef'Typinferenz in der PraxisExplizite Typ-AnnotationenZusammenfassung: Übung zu Basis-Typen5Typen: Aliase, Unions & Intersections
Typ-Aliase für primitive DatentypenUnion-Typen ('|')Arbeiten mit Union-TypenLiteral-TypenIntersection-Typen ('&')Kombinieren von Typ-AliasenZusammenfassung: Fortgeschrittene Typ-Kombinationen3Datenstruktur: Arrays & Tupel
Typisierte Arrays'readonly'-Modifikator für ArraysWas ist ein Tupel?Deklarieren von und Zugriff auf TupelDestrukturierung von TupelnReadonly-TupelMehrdimensionale typisierte ArraysSpread-Operator mit ArraysZusammenfassung: Arrays und TupelÜbe selbstständig: TypeScript-Playground