Vollständigkeitsprüfung mit never (Einführung)
Verwenden Sie never, um vollständige switch-Anweisungen für Unions zu erzwingen und fehlende Fälle frühzeitig zu erkennen.
Vollständigkeitsprüfung mit never (Einführung) ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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: Stellen Sie sicher, dass Ihr switch alle Member einer Union behandelt. Der Typ never hilft dem Compiler, Sie auf einen fehlenden Fall hinzuweisen.
Union einrichten
Erstellen Sie eine discriminated union mit einem Literal-Tag (z. B. kind), auf das Sie später mit switch verzweigen können.
type Circle = { kind: "circle"; radius: number };
type Square = { kind: "square"; size: number };
type Shape = Circle | Square;Nicht vollständiger Switch
Ein fehlender Zweig wird zwar kompiliert, aber die Logik ist unvollständig. Wir benötigen eine Möglichkeit, bei einem fehlenden Fall einen Fehler zur Compile-Zeit zu erzwingen.
function areaBad(s: Shape): number {
switch (s.kind) {
case "circle":
return Math.PI * s.radius ** 2;
// OOPS: forgot "square" -> no compile error yet
}
return 0; // silently wrong
}
console.log(areaBad({ kind: "circle", radius: 2 }));assertNever-Hilfsfunktion
Definieren Sie assertNever: Die Funktion akzeptiert nur never. Erreicht ein Wert diese Funktion, war der Switch nicht vollständig, und der Compiler meldet einen Fehler.
function assertNever(x: never): never {
throw new Error("Unhandled case: " + JSON.stringify(x));
}Vollständiger Switch
Fügen Sie einen default-Zweig hinzu, der assertNever aufruft. Wenn ein neues Union-Mitglied hinzukommt, zwingt der Compiler Sie, es zu behandeln.
function area(s: Shape): number {
switch (s.kind) {
case "circle":
return Math.PI * s.radius ** 2;
case "square":
return s.size * s.size;
default:
return assertNever(s); // compiler error if a member is unhandled
}
}
console.log(area({ kind: "square", size: 3 }));Richtlinien
Richtlinien:
- Verwenden Sie einen Discriminant (z. B.
kind) für die Union-Mitglieder. - Behalten Sie das Muster default + assertNever bei.
- Bevorzugen Sie klare Rückgabetypen, damit fehlende Fälle offensichtlich sind.
Überprüfung der Vollständigkeit
Kurze Überprüfung: Wie machen Sie einen Switch über eine discriminated union vollständig?
Zusammenfassung
Zusammenfassung: never bezeichnet einen unmöglichen Wert. Verwenden Sie assertNever im default-Zweig, um vollständige und zukunftssichere Switch-Anweisungen zu erzwingen.
Häufig gestellte Fragen
Ist die Lektion „Vollständigkeitsprüfung mit never (Einführung)“ kostenlos?
Ja — der vollständige Text von „Vollständigkeitsprüfung mit never (Einführung)“ 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 „Vollständigkeitsprüfung mit never (Einführung)“?
Verwenden Sie never, um vollständige switch-Anweisungen für Unions zu erzwingen und fehlende Fälle frühzeitig zu erkennen. 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 3 von 3.
Wie lange dauert die Lektion „Vollständigkeitsprüfung mit never (Einführung)“?
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
- typeof-, Gleichheits- und Truthiness-Narrowing
- in, instanceof und diskriminierte Unions
- Vollständigkeitsprüfung mit never (Einführung)