Un enum define un conjunto de constantes con nombre. TypeScript tiene enums numéricos y de cadena.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Un enum define un conjunto de constantes con nombre. TypeScript tiene enums numéricos y de cadena.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
A diferencia de la mayoría de los tipos de TypeScript (que desaparecen en tiempo de compilación), un enum normal emite un objeto JavaScript en tu bundle. Por eso muchos equipos prefieren un union de literales de cadena más as const, que es puramente a nivel de tipos:
// often preferred — zero runtime cost, easy to read in logs
const Status = { Active: "ACTIVE", Inactive: "INACTIVE" } as const;
type Status = typeof Status[keyof typeof Status]; // "ACTIVE" | "INACTIVE"
// or simply:
type Direction = "up" | "down" | "left" | "right";
const enum E { A, B } // inlined at compile time — no runtime object, but has tooling caveats
Los enums dan nombres significativos a conjuntos fijos (estados, roles, direcciones) y los agrupan bajo un único namespace.
Pero como emiten código en tiempo de ejecución y tienen peculiaridades (los enums numéricos se chequean de forma laxa), el TypeScript moderno suele favorecer los unions de literales de cadena para casos simples: son más ligeros y serializan de forma natural.
Usa enums cuando quieras el namespacing o el reverse mapping.
Una biblioteca de preguntas de entrevista de IT con respuestas detalladas — de Junior a Senior.
Donar