logo oujood
🔍

🔢 Enums et Constantes en TypeScript

Dans ce chapitre, tu vas découvrir comment utiliser les énumérations (enums) et les constantes en TypeScript. Ces outils permettent de représenter des ensembles de valeurs fixes, de manière sécurisée et facile à maintenir.

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 :

📋 Copier le code

enum Couleur {
  Rouge,
  Vert,
  Bleu
}

let fond: Couleur = Couleur.Vert;
  • enum Couleur définit 3 valeurs : Rouge, Vert, Bleu
  • Par défaut, chaque valeur est associée à un nombre : Rouge = 0, Vert = 1, Bleu = 2
  • fond contient la valeur Couleur.Vert (soit 1)

🎯 Enum avec valeurs personnalisées

Tu peux aussi associer une valeur spécifique à chaque élément :

📋 Copier le code

enum Role {
  Admin = "ADMIN",
  Client = "CLIENT",
  Visiteur = "VISITEUR"
}

let utilisateurRole: Role = Role.Client;
  • Ici, chaque membre de l’enum est lié à une string
  • utilisateurRole contient 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 :

📋 Copier le code

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 const transforme chaque valeur en type littéral
  • On utilise typeof et keyof pour créer un type automatiquement
  • paiement ne 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é

  • enum permet de définir des valeurs nommées fixes
  • Tu peux leur associer des chaînes personnalisées
  • Tu peux aussi utiliser des objets const typés avec as 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 ?