OUJOOD.COM
🔍 Qu’est-ce qu’un enum ?
Un enum (abréviation de "enumeration") est un type spécial qui représente un groupe de constantes nommées. Très utile pour représenter des états, des catégories ou des valeurs fixes.
📌 Exemple de base :
enum Couleur {
Rouge,
Vert,
Bleu
}
let fond: Couleur = Couleur.Vert;
enum Couleurdéfinit 3 valeurs : Rouge, Vert, Bleu- Par défaut, chaque valeur est associée à un nombre : Rouge = 0, Vert = 1, Bleu = 2
fondcontient la valeurCouleur.Vert(soit 1)
🎯 Enum avec valeurs personnalisées
Tu peux aussi associer une valeur spécifique à chaque élément :
enum Role {
Admin = "ADMIN",
Client = "CLIENT",
Visiteur = "VISITEUR"
}
let utilisateurRole: Role = Role.Client;
- Ici, chaque membre de l’enum est lié à une
string utilisateurRolecontient donc la valeur"CLIENT"- Très utile pour travailler avec des rôles d’utilisateur, des statuts, etc.
🧱 Avantages des enums
- Clairs, lisibles, faciles à maintenir
- Offrent un typage strict
- Évitent les erreurs de frappe (ex : "admin" vs "Admin")
🔐 Les constantes const avec as const
Une alternative légère aux enum consiste à utiliser des objets constants :
const Devises = {
Euro: "EUR",
Dollar: "USD",
Dirham: "MAD"
} as const;
type Devise = typeof Devises[keyof typeof Devises];
let paiement: Devise = "EUR"; // OK
paiement = "CAD"; // ❌ Erreur
as consttransforme chaque valeur en type littéral- On utilise
typeofetkeyofpour créer un type automatiquement paiementne peut contenir que "EUR", "USD" ou "MAD"
📌 Quand utiliser enum vs const ?
| Critère | enum | const + as const |
|---|---|---|
| Simplicité d'utilisation | ✅ | ✅ |
| Typage automatique | ✅ | ✅ (avec typeof) |
| Interopérabilité JavaScript | ⚠️ plus complexe | ✅ plus simple |
| Performance (dans le bundle final) | ⚠️ peut générer du code JS | ✅ pas de code JS |
📌 Résumé
enumpermet de définir des valeurs nommées fixes- Tu peux leur associer des chaînes personnalisées
- Tu peux aussi utiliser des objets
consttypés avecas const
🧭 Prochaine étape
Dans le prochain chapitre, nous explorerons les types spéciaux comme any, unknown, never et void, souvent mal compris mais très importants.
Souhaites-tu passer au Chapitre 10 : Les types any, unknown, never et void en TypeScript ?