Bedingte Typen (Einführung) und Verteilung über Unions
Lernen Sie bedingte Typen (T extends U ? X : Y) kennen und erfahren Sie, wie sie sich für leistungsfähige Logik auf Typebene über Unions verteilen.
Bedingte Typen (Einführung) und Verteilung über Unions ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des TypeScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der TypeScript Academy-Kurs umfasst insgesamt 3 Lektionen.
Einführung
Ziel: Verwenden Sie bedingte Typen (T extends U ? X : Y), um auf Typebene zu verzweigen, und verstehen Sie die Verteilung über Unions für präzise Ergebnisse.
Bedingter Typ: Grundlagen
Ein bedingter Typ gibt abhängig davon einen von zwei Typen zurück, ob T extends U gilt.
type IsString<T> = T extends string ? true : false;
let a: IsString<string>; // true
let b: IsString<number>; // false
Verteilung
Bei einem nackten Typparameter T wird der bedingte Typ auf jedes Union-Mitglied angewendet; anschließend werden die Ergebnisse zu einer Union zusammengefasst.
type ToArray<T> = T extends any ? T[] : never;
type R1 = ToArray<string | number>; // string[] | number[]Verteilung stoppen
Umschließen Sie T in einem Tupel (z. B. [T]), um die Verteilung zu stoppen und die Union als Ganzes zu behandeln.
type ToArrayNoDistrib<T> = [T] extends [any] ? T[] : never;
type R2 = ToArrayNoDistrib<string | number>; // (string | number)[]Praktisches Exclude
Viele Utility-Typen beruhen auf Verteilung (z. B. Exclude und Extract). Sie können eigene Varianten problemlos erstellen.
type MyExclude<T, U> = T extends U ? never : T;
type R3 = MyExclude<"a" | "b" | "c", "b">; // "a" | "c"Tipps
Tipps:
- Verteilung findet nur statt, wenn links von
extendsein nackter Typparameter steht. - Umschließen Sie den Typ in einem Tupel, um die Verteilung zu deaktivieren.
- Testen Sie kleine Beispiele, um Ihre Vermutung zu überprüfen.
Prüfung der Verteilung
Kurzer Test: Warum verteilen sich bedingte Typen über Unions?
Zusammenfassung
Zusammenfassung: Verwenden Sie bedingte Typen für Verzweigungen auf Typebene. Verstehen Sie, wann sich Ergebnisse über Unions verteilen und wie Sie dies durch das Umschließen in einem Tupel deaktivieren.
Häufig gestellte Fragen
Ist die Lektion „Bedingte Typen (Einführung) und Verteilung über Unions“ kostenlos?
Ja — der vollständige Text von „Bedingte Typen (Einführung) und Verteilung über Unions“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des TypeScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der TypeScript Academy-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „Bedingte Typen (Einführung) und Verteilung über Unions“?
Lernen Sie bedingte Typen (T extends U ? X : Y) kennen und erfahren Sie, wie sie sich für leistungsfähige Logik auf Typebene über Unions verteilen. Du übst TypeScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um TypeScript Academy zu starten?
Keine Vorkenntnisse erforderlich. TypeScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.
Wie lange dauert die Lektion „Bedingte Typen (Einführung) und Verteilung über Unions“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser TypeScript Academy-Lektion Code schreiben und ausführen?
Ja. Jede TypeScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Generische Interfaces und Type Aliases
- Bedingte Typen (Einführung) und Verteilung über Unions
- Wiederverwendbare Muster für Datenmodelle