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.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Défi
FacileCré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
playerDirectionde typeDirectionet assignez-lui la valeur"up" - Déclarez une variable nommée
currentStatede typeGameStateet assignez-lui la valeur"playing" - Déclarez une variable nommée
selectedDifficultyde typeDifficultyet 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
movePlayeravecplayerDirectionet affichez le résultat - Appelez
updateGameStateaveccurrentStateet 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"; // ValideCela 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ésultatsCette 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
1Premiers pas avec TS
Qu'est-ce que TypeScript ?Pourquoi utiliser TypeScript ?Votre premier code TypeScriptProcessus de compilation et erreursRécapitulatif : Introduction à TS4Travailler avec les fonctions
Typage des paramètres et valeurs de retourTypage des fonctions fléchéesLe type de retour 'void'Paramètres optionnels avec '?'Valeurs par défaut des paramètresTypage des paramètres RestDéfinir des types de fonctionsRécapitulatif : Créer des fonctions typées2Types fondamentaux
Types de base : str, num, booleanLe type 'any' : la porte de sortieLe type 'unknown'Travailler avec 'null' et 'undef'L'inférence de type en actionAnnotations de type explicitesRécapitulatif : Pratique des types fondamentaux5Types : Alias, Unions & Intersections
Alias de types pour les primitifsTypes d'union ('|')Travailler avec les types d'unionTypes littérauxTypes d'intersection ('&')Combiner des alias de typesRécapitulatif : Combinaisons de types avancées3Structure de données : Tableaux et Tuples
Tableaux typésModificateur 'readonly' pour les tableauxQu'est-ce qu'un tuple ?Déclaration et accès aux tuplesDéstructuration de tuplesTuples readonlyTableaux typés multidimensionnelsSpread operator avec les tableauxRécapitulatif : Tableaux et tuples6Typage des objets et interfaces
Annotations de type d'objet en ligneAlias de type pour les objetsIntroduction aux interfacesInterfaces vs Alias de typePropriétés optionnelles et ReadonlyÉtendre les interfaces et les typesAjout de méthodes aux interfacesRécapitulatif : Définir la structure des objets