0Pricing
TypeScript Academy · Lektion

Praxisnahe Muster mit Union- und Intersection-Typen

Setzen Sie Unions und Intersections in praxisnahen Szenarien ein.

Praxisnahe Muster mit Union- und Intersection-Typen ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. 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 4 Lektionen.

Willkommen

Union- und Intersection-Typen bilden die Grundlage vieler praxisnaher TypeScript-Muster. In dieser Lektion untersuchen Sie praktische Kombinationen, die Sie in produktivem Code verwenden werden.

Muster für optionale Nutzdaten

Modellieren Sie mit einer Union Funktionen oder Ereignisse, die Daten enthalten können, aber nicht müssen.
type Event =
  | { type: 'click'; x: number; y: number }
  | { type: 'keypress'; key: string }
  | { type: 'blur' };

Builder/Mixin mit Intersection

Verwenden Sie Intersections, um mehrere Funktionsbereiche zu einem kombinierten Typ zusammenzusetzen.
type Serializable = { serialize(): string };
type Validatable = { validate(): boolean };
type Model = Serializable & Validatable & { id: number };

Union zur Eingabenormalisierung

Akzeptieren Sie in einer Funktion flexible Eingabetypen und normalisieren Sie sie auf einen kanonischen Typ.
function toArray<T>(val: T | T[]): T[] {
  return Array.isArray(val) ? val : [val];
}

Branded Types mit Intersection

Erstellen Sie mithilfe von Intersections mit einer eindeutigen Brand-Markierung unterschiedliche Typen aus demselben primitiven Typ.
type UserId = number & { __brand: 'UserId' };
type PostId = number & { __brand: 'PostId' };
// Prevents accidentally mixing IDs

WithOptional-Muster

Verwenden Sie eine Intersection mit Partial, um einen Basistyp zu erstellen, bei dem einige Felder erforderlich und andere optional sind.
type RequiredFields = { id: number; email: string };
type OptionalFields = Partial<{ name: string; bio: string }>;
type UserUpdate = RequiredFields & OptionalFields;

Polymorphe Component-Props

In React können Union-Typen dafür sorgen, dass Component-Props abhängig von einem Diskriminator variieren.
type ButtonProps =
  | { variant: 'primary'; onClick: () => void }
  | { variant: 'link'; href: string };

Typen von Drittanbietern erweitern

Verknüpfen Sie Typen von Drittanbietern mit Ihren eigenen Ergänzungen durch eine Intersection.
import type { Request } from 'express';
type AuthRequest = Request & { user: User };

Union und Intersection kombinieren

Union und Intersection können kombiniert werden. Klammern steuern die Rangfolge.
type Admin = { role: 'admin' };
type User = { role: 'user' };
type LoggedIn = { sessionId: string };
type AuthUser = (Admin | User) & LoggedIn;

Typwächter für Union-Mitglieder

Schreiben Sie eine wiederverwendbare Typwächterfunktion, um eine Union einzugrenzen, ohne Prüfungen zu wiederholen.
function isAdmin(u: AuthUser): u is Admin & LoggedIn {
  return u.role === 'admin';
}

Distributives Verhalten bei Intersections

Distributivgesetz: A & (B | C) = (A & B) | (A & C). TypeScript wendet dieses Gesetz automatisch an.
type Base = { id: number };
type AB = Base & (string | number);
// equivalent to: (Base & string) | (Base & number)

Kurzer Test

Welches Muster erstellt aus `number` einen eigenen Typ, um das versehentliche Vermischen von IDs zu verhindern?

Zusammenfassung

Union- und Intersection-Typen lassen sich kombinieren, um komplexe Strukturen aus der Praxis zu modellieren: Branded IDs, Mixin-Verhalten, flexible Eingaben und diskriminierte Component-Props. Beherrschen Sie diese Muster für produktionsreifen TypeScript-Code.

Häufig gestellte Fragen

Ist die Lektion „Praxisnahe Muster mit Union- und Intersection-Typen“ kostenlos?

Ja — der vollständige Text von „Praxisnahe Muster mit Union- und Intersection-Typen“ 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 4 Lektionen.

Was lerne ich in „Praxisnahe Muster mit Union- und Intersection-Typen“?

Setzen Sie Unions und Intersections in praxisnahen Szenarien ein. 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 4 von 4.

Wie lange dauert die Lektion „Praxisnahe Muster mit Union- und Intersection-Typen“?

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. Union-Typen: A oder B
  2. Intersection-Typen: A und B
  3. Diskriminierte Unions für sicheres Pattern Matching
  4. Praxisnahe Muster mit Union- und Intersection-Typen
← Zurück zu TypeScript Academy