capypad
0 Tage Serie
typescript / expert
Snippet

Vollständigkeitsprüfung mit dem 'never'-Typ

Durch die Zuweisung einer Variable zum Typ 'never' in einem Default-Zweig erstellen Sie eine Prüfung auf Vollständigkeit zur Kompilierzeit. Wenn das 'Shape'-Union um ein Mitglied erweitert wird, schlägt die Kompilierung fehl, bis der neue Fall behandelt wird.

snippet.ts
typescript
1
2
3
4
5
6
7
8
9
10
11
type Shape = { type: "circle" } | { type: "square" };
 
function getArea(shape: Shape) {
switch (shape.type) {
case "circle": return Math.PI;
case "square": return 1;
default:
const _exhaustiveCheck: never = shape;
return _exhaustiveCheck;
}
}
Erklärung
1
const _exhaustiveCheck: never = shape
Zwingt den Compiler zu prüfen, dass 'shape' an dieser Stelle keine verbleibenden möglichen Typen mehr hat.
2
default:
Das Sicherheitsnetz, das unbehandelte Union-Mitglieder während der Entwicklung abfängt.