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
as constestrecha los valores de un objeto a sus literales.- Una unión de literales es cómo TypeScript escribe un enum sin usar uno.
typeofsobre un objeto const recupera la unión desde los valores.
Palabras clave y builtins usados aquí
FromArrayLimitNameLimitValueStarsThemeasconstfunctionnumberreturnstringtype
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.
Paso 2 de 4 en Primitivos y literales; paso 2 de 23 en Tipos y anotaciones.