Types littéraux
Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 35 sur 80.
Les types comme string acceptent n’importe quelle chaîne, mais parfois, seules quelques valeurs précises ont du sens. Un type littéral utilise la valeur elle-même comme type :
local mode: "dark" = "dark" -- seule la chaîne "dark" est autorisée
local locked: true = true -- seul le booléen true est autoriséPris isolément, les types à valeur unique sont une curiosité. Combinés à des unions, ils deviennent l’un des outils les plus utiles de Luau : un ensemble strictement contrôlé de valeurs autorisées :
type Direction = "north" | "south" | "east" | "west"
type GameState = "menu" | "playing" | "paused" | "gameover"
local move: Direction = "north" -- ✓
local state: GameState = "playing" -- ✓
-- local bad: Direction = "diagonal" -- ✗ erreur de type !Une faute de frappe comme "nort" ou une valeur invalide comme "diagonal" est désormais détectée pendant que tu modifies le code. Avec un simple string, elle passerait sans problème et provoquerait une erreur à l’exécution, si tu as la chance de la remarquer.
Les types littéraux sont sensibles à la casse et exacts : "North" ne correspond pas à "north". Les littéraux de chaîne sont les plus courants, mais les littéraux booléens et (dans les versions plus récentes de Luau) numériques fonctionnent de la même façon. Ce modèle, une union de littéraux de chaîne, permet aussi à Luau de remplacer les enums d’autres langages, comme tu le verras dans un chapitre ultérieur.
Défi
FacileN’autorise que quatre noms de direction exacts.
- Écris
type Direction = "north" | "south" | "east" | "west". - Écris
local function movePlayer(direction: Direction): stringqui renvoie`Moving {direction}`. - Déclare
local playerDirection: Direction = "east"et affichemovePlayer(playerDirection).
Appuie sur Run Code : la sortie affiche Moving east.
Essayez vous-même
-- 1) type Direction = "north" | "south" | "east" | "west"
-- 2) movePlayer(direction: Direction): string
-- 3) local playerDirection: Direction = "east", puis afficher le déplacement
Toutes les leçons de Introduction à Luau
1Premiers pas avec Luau
Qu'est-ce que Luau ?Pourquoi utiliser Luau ?Votre premier code LuauVérification de type et modes d'erreurRécapitulatif : Introduction à Luau4Travailler avec les fonctions
Typer les paramètres et les valeurs de retourTyper les fonctions anonymesFonctions sans valeur de retourParamètres optionnelsValeurs par défaut des paramètresValeurs par défaut pour les booléensFonctions variadiquesDéfinir des types de fonctionsRécapitulatif : fonctions typées7Projet : gestionnaire de tâches typé
Projet : la structure d’une tâcheFonction pour ajouter une tâche2Types fondamentaux
Nombre, chaîne de caractères et booléenLe type « any » : une échappatoireLe type « unknown »Types nil et optionnelsL’inférence de types en actionAnnotations de type explicitesRécapitulatif : exercices sur les types fondamentaux5Alias, unions et intersections
Alias de types pour les types primitifsTypes unionsTravailler avec les types unionsTypes littérauxTypes intersectionsCombinaison d'alias de typesRécapitulatif : Combinaisons de types avancées3Tables typées : tableaux et maps
Tableaux typésAjouter et lire des élémentsQu’est-ce qu’un type Map ?Déclarer et accéder aux mapsParcourir les tablesTables de formes mixtesLire une grilleConstruire une grilletable.unpackRécapitulatif : tableaux et mapsEntraînez-vous par vous-même : Compilateur Luau en ligne