switch exhaustivo en TypeScript
El truco de never que hace que el compilador rechace un caso sin manejar.
type Shape = { kind: "circle"; r: number } | { kind: "square"; s: number };
function area(shape: Shape): number {
switch (shape.kind) {
case "circle":
return Math.PI * shape.r ** 2;
case "square":
return shape.s ** 2;
default:
const exhausted: never = shape;
throw new Error(`unhandled: ${exhausted}`);
}
}
Palabras clave y builtins usados aquí
MathShapecaseconstfunctionnevernumberreturnswitchthrowtype
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 307
- Tokens
- 87
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 55 segundos.
Paso 4 de 4 en Estrechamiento; paso 10 de 23 en Tipos y anotaciones.