Generische Interfaces
Teil des Abschnitts Einführung in TypeScript der JavaScript-Journey von Coddy. Lektion 61 von 73.
So wie du generische Funktionen erstellen kannst, kannst du auch generische Schnittstellen erstellen. Dadurch kannst du die Struktur eines Objekts definieren und gleichzeitig bestimmte Eigenschaftstypen flexibel und wiederverwendbar halten.
So erstellst du eine generische Schnittstelle mit derselben Syntax für Typparameter:
interface Container {
value: T;
isEmpty: boolean;
}Das <T> nach dem Namen des Interfaces erstellt einen Typparameter, der in der gesamten Interface-Definition verwendet werden kann. In diesem Beispiel hat die Eigenschaft value den Typ, den du bei der Verwendung des Interfaces angibst, während isEmpty ein fester boolean-Typ bleibt.
Wenn du eine generische Schnittstelle verwendest, gibst du den konkreten Typ in spitzen Klammern an:
const stringContainer: Container = {
value: "hello",
isEmpty: false
};
const numberContainer: Container = {
value: 42,
isEmpty: false
};Aufgabe
EinfachErstelle eine generische Schnittstelle namens Result, die Daten beliebigen Typs zusammen mit Erfolgsinformationen enthalten kann.
Die Schnittstelle sollte zwei Eigenschaften haben:
successvom Typbooleandatavom TypT(der generische Typparameter)
Erstelle die folgenden Objekte mithilfe deiner generischen Schnittstelle:
stringResultvom TypResult<string>mitsuccess: trueunddata: "Operation completed"numberResultvom TypResult<number>mitsuccess: trueunddata: 42booleanResultvom TypResult<boolean>mitsuccess: falseunddata: falsearrayResultvom TypResult<string[]>mitsuccess: trueunddata: ["item1", "item2", "item3"]
Erstelle eine generische Funktion namens processResult, die:
- einen generischen Typparameter
Tverwendet - einen Parameter
resultvom TypResult<T>entgegennimmt - eine String-Nachricht zurückgibt
- wenn
successtrueist,"Success: [data]"zurückgibt - wenn
successfalseist,"Failed: [data]"zurückgibt
Gib die folgenden Ausgaben aus:
- Gib das Ergebnis des Aufrufs von
processResultmitstringResultaus - Gib das Ergebnis des Aufrufs von
processResultmitnumberResultaus - Gib das Ergebnis des Aufrufs von
processResultmitbooleanResultaus - Gib das Ergebnis des Aufrufs von
processResultmitarrayResultaus - Gib
stringResult.dataaus
Probier es selbst
// TODO: Schreibe deinen Code hier
// Erstelle das generische Result-Interface
// Erstelle die Objekte unter Verwendung des Result-Interfaces
// Erstelle die generische processResult-Funktion
// Gib die erforderlichen Ausgaben ausDiese 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 erstellen2Basis-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 Tupel6Typisierung von Objekten und Interfaces
Inline-Typanmerkungen für ObjekteType-Aliase für ObjekteEinführung in InterfacesInterfaces vs. Type-AliaseOptionale & Readonly-EigenschaftenErweitern von Interfaces und TypenMethoden zu Interfaces hinzufügenZusammenfassung: Objektstrukturen definieren9Generics: Ein erster Blick
Das Problem, das Generics lösenErstellen einer generischen Identity-FunktionVerwenden einer generischen FunktionGenerische ArraysGenerische InterfacesZusammenfassung: Praxis mit generischen FunktionenÜbe selbstständig: Online-JavaScript-Compiler