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
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.