typestar

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

  1. typeof y Array.isArray estrechan una unión.
  2. Cada chequeo elimina posibilidades del tipo.
  3. value is X declara una guarda de tipo propia.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 4 en Estrechamiento; paso 7 de 23 en Tipos y anotaciones.

← Anterior Siguiente →