Menu
Coddy logo textTech

Types littéraux

Fait partie de la section Introduction à TypeScript du Journey JavaScript de Coddy — leçon 33 sur 73.

Les types littéraux vous permettent de contraindre une variable à des valeurs exactes et spécifiques plutôt qu'à de larges catégories. Au lieu d'accepter n'importe quelle chaîne de caractères, vous pouvez la limiter à seulement "left", "right", "up", ou "down".

Un type littéral utilise la valeur exacte comme le type lui-même.

Vous pouvez créer des types littéraux pour les chaînes de caractères, les nombres ou les booléens :

let direction: "left" = "left";  // Seul "left" est autorisé
let count: 42 = 42;              // Seul le nombre 42 est autorisé
let isReady: true = true;        // Seul true est autorisé

Les types littéraux deviennent puissants lorsqu'ils sont combinés avec des types d'union, créant un ensemble contrôlé de valeurs autorisées. C'est parfait pour des scénarios tels que les directions, les codes d'état ou les options de configuration :

type Direction = "left" | "right" | "up" | "down";
type Status = "pending" | "approved" | "rejected";

let playerMove: Direction = "up";    // Valide
let orderStatus: Status = "pending"; // Valide
// let invalid: Direction = "diagonal"; // Erreur !

Cette approche vous offre la flexibilité de plusieurs options tout en maintenant une sécurité de type stricte. TypeScript détectera les fautes de frappe et les valeurs invalides au moment de la compilation, rendant votre code plus fiable que l'utilisation de types de chaînes de caractères généraux.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

challenge icon

Défi

Facile

Créez un alias de type nommé Direction pour les types littéraux "left" | "right" | "up" | "down".

Créez un alias de type nommé GameState pour les types littéraux "menu" | "playing" | "paused" | "gameover".

Créez un alias de type nommé Difficulty pour les types littéraux "easy" | "medium" | "hard".

Maintenant, déclarez les variables suivantes en utilisant vos alias de type :

  • Déclarez une variable nommée playerDirection de type Direction et assignez-lui la valeur "up"
  • Déclarez une variable nommée currentState de type GameState et assignez-lui la valeur "playing"
  • Déclarez une variable nommée selectedDifficulty de type Difficulty et assignez-lui la valeur "medium"

Créez une fonction nommée movePlayer qui accepte un paramètre appelé direction de type Direction et retourne un string. La fonction doit retourner un message au format "Moving [direction]".

Créez une autre fonction nommée updateGameState qui accepte un paramètre appelé state de type GameState et retourne un string. La fonction doit retourner un message au format "Game state: [state]".

Appelez vos fonctions avec les variables que vous avez créées et affichez les résultats :

  • Appelez movePlayer avec playerDirection et affichez le résultat
  • Appelez updateGameState avec currentState et affichez le résultat
  • Affichez la valeur de selectedDifficulty

Affichez chaque résultat sur une ligne distincte dans l'ordre spécifié ci-dessus.

Aide-mémoire

Les types littéraux contraignent les variables à des valeurs exactes et spécifiques plutôt qu'à de larges catégories :

let direction: "left" = "left";  // Seul "left" est autorisé
let count: 42 = 42;              // Seul le nombre 42 est autorisé
let isReady: true = true;        // Seul true est autorisé

Combinez les types littéraux avec les types d'union pour créer des ensembles contrôlés de valeurs autorisées :

type Direction = "left" | "right" | "up" | "down";
type Status = "pending" | "approved" | "rejected";

let playerMove: Direction = "up";    // Valide
let orderStatus: Status = "pending"; // Valide

Cela garantit la sécurité des types en détectant les fautes de frappe et les valeurs invalides au moment de la compilation, tout en conservant une certaine flexibilité grâce aux multiples options.

Essayez vous-même

// TODO : Écrivez votre code ici
// Créer des alias de type pour Direction, GameState et Difficulty
// Déclarer des variables en utilisant vos alias de type
// Créer les fonctions movePlayer et updateGameState
// Appeler les fonctions et afficher les résultats
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Introduction à TypeScript