TypeScriptTypes de base

enum

Un ensemble nommé de valeurs constantes, numériques ou textuelles.

Sur cette page

Exemple

#
TypeScript
enum Difficulty {
  Easy = 'easy',
  Medium = 'medium',
  Hard = 'hard'
}

function label(level: Difficulty): string {
  return level === Difficulty.Hard ? 'Pour les courageux' : 'Pour tout le monde'
}

console.log(Difficulty.Hard)
console.log(label(Difficulty.Easy))
Résultat
hard
Pour tout le monde

Définition et utilisation

#

Un enum (type énuméré) regroupe des constantes liées sous un nom commun, par exemple des niveaux de difficulté ou des statuts de commande. Au lieu d’écrire des chaînes « magiques » dans le code, vous faites référence à Difficulty.Hard.

Les enums numériques reçoivent des numéros consécutifs à partir de zéro, sauf si vous en fournissez vous-même. Les enums textuels exigent une valeur pour chaque membre, et ils sont plus lisibles dans les journaux et dans les données venant d’une API.

À la différence de la plupart des syntaxes de TypeScript, un enum existe aussi après la compilation, comme un objet JavaScript. C’est pourquoi de nombreuses équipes utilisent une union de littéraux ("easy" | "hard") ou un objet avec as const à la place d’un enum.

Syntaxe

#
Syntaxe
enum Name {
  First = "value",
  Second = "value"
}

Plus d’exemples

#
Un enum numérique
TypeScript
enum Status {
  Draft,
  Published,
  Archived
}

console.log(Status.Published)
console.log(Status[2])
Résultat
1
Archived

Bonnes pratiques

#
  • Pour les données venant d’une API ou de localStorage, choisissez des enums textuels. La valeur "hard" est plus facile à comprendre que 2.
  • Envisagez une union de littéraux type Difficulty = "easy" | "hard". Elle est plus légère et ne génère aucun code.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.