Une enum définit un ensemble de constantes nommées. TypeScript dispose d'enum numériques et de chaînes.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Une enum définit un ensemble de constantes nommées. TypeScript dispose d'enum numériques et de chaînes.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Contrairement à la plupart des types TypeScript (qui disparaissent à la compilation), une enum ordinaire émet un objet JavaScript dans votre bundle. C'est pourquoi de nombreuses équipes préfèrent une union de chaînes littérales plus as const, qui est purement au niveau du type :
// 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
Les enum donnent des noms significatifs à des ensembles fixes (états, rôles, directions) et les regroupent sous un seul namespace.
Mais comme elles émettent du code runtime et ont des particularités (les enum numériques sont vérifiées de façon lâche), le TypeScript moderne privilégie souvent les unions de chaînes littérales pour les cas simples — elles sont plus légères et se sérialisent naturellement.
Utilisez les enum quand vous voulez du namespacing ou du reverse mapping.