T extends U ? X : Y in der Praxis
Schreiben Sie praxisnahe bedingte Typen, lernen Sie die Verteilung über Unions kennen und erfahren Sie, wie Sie sie bei Bedarf deaktivieren.
T extends U ? X : Y in der Praxis ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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, um Logik im Typsystem auszudrücken, und verstehen Sie, wann sie sich über Unions verteilen.
- Muster:
T extends U ? X : Y - Verteilung: Der Zweig wird auf jedes Union-Mitglied angewendet
Grundlegendes Muster
Bedingte Typen wählen einen Zweig abhängig davon, ob T string zugewiesen werden kann.
type IsString<T> = T extends string ? true : false
type A = IsString<string>
// ^ true
type B = IsString<number>
// ^ falseVerteilung
Mit einem unverpackten T wird die Prüfung für jedes Union-Mitglied ausgeführt: string | number wird zu string[] | number[].
type ToArray<T> = T extends any ? T[] : never
type C = ToArray<string | number>
// distributes:
// C is string[] | number[]Verteilung deaktivieren
Verpacken Sie T in ein Tupel ([T]), um die Verteilung zu verhindern und die Union als Ganzes zu behandeln.
type ToArrayNoDist<T> = [T] extends [any] ? T[] : never
type D = ToArrayNoDist<string | number>
// no distribution:
// D is (string | number)[]Praxisnahe Utility
Beispiel für dieses Muster: Bei Arrays verwendet ElementType infer, um das Element zu extrahieren. Andernfalls bleibt der Typ unverändert.
type NonEmptyArray<T> = T[] extends [] ? never : T[]
// Usually better:
// type ElementType<T> = T extends ReadonlyArray<infer U> ? U : T
type E1 = ElementType<string[]>
// ^ string
type E2 = ElementType<readonly number[]>
// ^ number
type E3 = ElementType<string>
// ^ stringTipps
Tipps: Halten Sie Bedingungen einfach; berücksichtigen Sie die Bereitstellung; verwenden Sie Hilfstypen wieder; fügen Sie für komplexe Kombinationen Testdateien hinzu.
// Tips
// - Keep conditions simple; deep nesting harms readability
// - Document distribution behavior for teammates
// - Prefer helper aliases (ElementType, Awaited) for reuse
// - Watch for De Morgan like logic when composing unionsVerteilung prüfen
Kurztest: Wann verteilen sich bedingte Typen?
Zusammenfassung
Zusammenfassung: Bedingte Typen bilden Logik im Typsystem ab. Die Verteilung erfolgt für jedes Union-Mitglied; verwenden Sie eine Tupelverpackung, um sie zu deaktivieren.
Häufig gestellte Fragen
Ist die Lektion „T extends U ? X : Y in der Praxis“ kostenlos?
Ja — der vollständige Text von „T extends U ? X : Y in der Praxis“ 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 „T extends U ? X : Y in der Praxis“?
Schreiben Sie praxisnahe bedingte Typen, lernen Sie die Verteilung über Unions kennen und erfahren Sie, wie Sie sie bei Bedarf deaktivieren. 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 1 von 3.
Wie lange dauert die Lektion „T extends U ? X : Y in der Praxis“?
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
- T extends U ? X : Y in der Praxis
- infer für ReturnType-ähnliche Utility-Typen
- Integrierte Typen: ReturnType, Parameters, InstanceType usw.