Kombinieren von Typ-Aliasen
Teil des Abschnitts Einführung in TypeScript der JavaScript-Journey von Coddy. Lektion 35 von 73.
Einer der leistungsfähigsten Aspekte von Typ-Aliasen ist ihre Fähigkeit, kombiniert und wiederverwendet zu werden, um anspruchsvollere Typdefinitionen zu erstellen. Anstatt komplexe Typen jedes Mal von Grund auf neu zu definieren, können Sie diese aufbauen, indem Sie kleinere, fokussierte Typ-Aliase miteinander kombinieren.
Dieser Ansatz fördert die Wiederverwendbarkeit von Code und macht Ihre Typdefinitionen wartungsfreundlicher. Wenn Sie einen Basistyp aktualisieren müssen, erben alle zusammengesetzten Typen, die ihn verwenden, automatisch die Änderungen:
type Email = string;
type Phone = number;
type Contact = {
name: string;
email: Email;
phone: Phone;
};Sie können auch Typ-Aliase innerhalb von Union-Typen kombinieren, um flexible Datenstrukturen zu erstellen. Dies ist besonders nützlich, wenn eine Objekteigenschaft verschiedene Formate akzeptieren kann:
type ContactMethod = Email | Phone;
type User = {
id: number;
preferredContact: ContactMethod;
};Dieser kompositionelle Ansatz macht Ihren Code ausdrucksstärker und leichter verständlich. Anstatt generische Typen wie string oder number zu sehen, verstehen andere Entwickler den beabsichtigten Zweck sofort durch aussagekräftige Typnamen wie Email und Phone.
Aufgabe
EinfachErstellen Sie einen Typ-Alias namens Username für den Typ string.
Erstellen Sie einen Typ-Alias namens UserAge für den Typ number.
Erstellen Sie einen Typ-Alias namens ContactMethod, der Username und UserAge mithilfe eines Union-Typs kombiniert.
Erstellen Sie einen Typ-Alias namens UserProfile für ein Objekt mit den folgenden Eigenschaften:
idvom TypnumberdisplayNamevom TypUsernamepreferredContactvom TypContactMethod
Erstellen Sie einen Typ-Alias namens AdminProfile, der UserProfile mit einem zusätzlichen Objekttyp kombiniert, der eine Eigenschaft permissions vom Typ string enthält, unter Verwendung von Intersection-Typen.
Erstellen Sie nun die folgenden Variablen:
- Erstellen Sie eine Variable namens
regularUservom TypUserProfilemit der id1, dem displayName"john_doe"und dem preferredContact"john_doe" - Erstellen Sie eine Variable namens
systemAdminvom TypAdminProfilemit der id2, dem displayName"admin", dem preferredContact25und den permissions"full_access"
Erstellen Sie eine Funktion namens getContactInfo, die einen Parameter namens contact vom Typ ContactMethod akzeptiert und einen string zurückgibt. Verwenden Sie einen Type Guard, um den Typ zu prüfen und Folgendes zurückzugeben:
- Wenn es ein String ist:
"Contact: [contact]" - Wenn es eine Nummer ist:
"Age: [contact]"
Geben Sie die folgenden Ausgaben in separaten Zeilen aus:
- Rufen Sie
getContactInfomitregularUser.preferredContactauf und geben Sie das Ergebnis aus - Rufen Sie
getContactInfomitsystemAdmin.preferredContactauf und geben Sie das Ergebnis aus - Geben Sie
systemAdmin.permissionsaus
Probier es selbst
// TODO: Schreiben Sie Ihren Code hier
// Erstellen Sie Typ-Aliase für Username, UserAge, ContactMethod, UserProfile und AdminProfile
// Erstellen Sie die Variablen regularUser und systemAdmin
// Erstellen Sie die Funktion getContactInfo
// Geben Sie 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 TupelÜbe selbstständig: Online-JavaScript-Compiler