Enum vs const Enum vs Union
TypeScript 🟡 MidDefinition
Trois facons de modeliser un ensemble fini: enum (objet runtime), const enum (inline a la compilation, efface), union de litteraux (zero runtime). Chacune avec ses compromis.
Analogie
Enum: un panneau permanent. Const enum: un post-it qu'on retire apres lecture. Union: une regle orale connue de tous.
Exemple de code
enum Dir { Up, Down } // objet JS emis
const enum Fast { A, B } // inline, pas d'objet
type Clean = "up" | "down"; // zero runtime
Cas d'usage
Preferer les unions de litteraux pour la legerete. Enum pour l'iteration. Const enum pour la performance (avec precaution).
Anti-pattern
Utiliser des enums numeriques sans valeur explicite — l'ajout d'un membre casse les valeurs persistees.