Menu
CoddyTech

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.

challenge icon

Défi

Facile

N’autorise que quatre noms de direction exacts.

  1. Écris type Direction = "north" | "south" | "east" | "west".
  2. Écris local function movePlayer(direction: Direction): string qui renvoie `Moving {direction}`.
  3. Déclare local playerDirection: Direction = "east" et affiche movePlayer(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

Entraînez-vous par vous-même : Compilateur Luau en ligne