typestar

Enums y la alternativa en TypeScript

Qué te da un enum, y por qué un objeto const suele ganarle.

enum Level {
  Debug,
  Info,
  Warn,
}

const enum Inlined {
  Yes = "yes",
}

const LEVELS = {
  debug: "debug",
  info: "info",
  warn: "warn",
} as const;

type LevelName = (typeof LEVELS)[keyof typeof LEVELS];

function log(level: LevelName, message: string): string {
  return `[${level}] ${message}`;
}

console.log(Level.Info, Level[1], Inlined.Yes);
console.log(log("warn", "slow"), Object.values(LEVELS));

Cómo funciona

  1. Un enum numérico es bidireccional y emite código real.
  2. Un enum de cadenas es nominal: dos cadenas idénticas no son asignables.
  3. Un objeto const con as const es borrable y de tipado estructural.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
24
Caracteres a escribir
399
Tokens
116
Ritmo de tres estrellas
85 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →