0Pricing
TypeScript Academy · Lektion

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>
//   ^ false

Verteilung

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>
//   ^ string

Tipps

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 unions

Verteilung 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

  1. T extends U ? X : Y in der Praxis
  2. infer für ReturnType-ähnliche Utility-Typen
  3. Integrierte Typen: ReturnType, Parameters, InstanceType usw.
← Zurück zu TypeScript Academy