Estrechamiento y guardas de tipo en TypeScript
Enseñarle al compilador qué es un valor en realidad.
type Input = string | number | string[] | null;
function length(input: Input): number {
if (input === null) return 0;
if (typeof input === "string") return input.length;
if (typeof input === "number") return String(input).length;
if (Array.isArray(input)) return input.length;
return 0;
}
function isUser(value: unknown): value is { name: string } {
return typeof value === "object" && value !== null && "name" in value;
}
Cómo funciona
typeofyArray.isArrayestrechan una unión.- Cada chequeo elimina posibilidades del tipo.
value is Xdeclara una guarda de tipo propia.
Palabras clave y builtins usados aquí
ArrayInputStringfunctionifnumberreturnstringtypeunknown
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 424
- Tokens
- 108
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 68 segundos.
Paso 1 de 4 en Estrechamiento; paso 7 de 23 en Tipos y anotaciones.