typestar

Tipos literales y de unión en TypeScript

Un tipo literal es un valor exacto; una unión es un conjunto cerrado de ellos.

type Theme = "default" | "monokai" | "dracula";
type Stars = 0 | 1 | 2 | 3;

const THEMES = ["default", "monokai", "dracula"] as const;
type FromArray = (typeof THEMES)[number];

const LIMITS = { short: 30, long: 300 } as const;
type LimitName = keyof typeof LIMITS;
type LimitValue = (typeof LIMITS)[LimitName];

function apply(theme: Theme, stars: Stars): string {
  return `${theme}:${stars}`;
}

const chosen: FromArray = "monokai";
const named: LimitName = "short";
const seconds: LimitValue = LIMITS[named];
console.log(apply(chosen, 3), seconds);

Cómo funciona

  1. as const estrecha los valores de un objeto a sus literales.
  2. Una unión de literales es cómo TypeScript escribe un enum sin usar uno.
  3. typeof sobre un objeto const recupera la unión desde los valores.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
551
Tokens
141
Ritmo de tres estrellas
85 tpm

Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 100 segundos.

Escribe este fragmento

Paso 2 de 4 en Primitivos y literales; paso 2 de 23 en Tipos y anotaciones.

← Anterior Siguiente →