Menu
CoddyTech

Types unions

Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 33 sur 80.

Parfois, un seul type ne suffit pas. Un identifiant utilisateur peut arriver sous la forme "user123" ou 42. En Lua standard, il ne te resterait qu'à croiser les doigts ; Luau te propose les types union : la barre verticale | se lit « ou » :

local userId: number | string

userId = "user123"  -- ✓ une chaîne de caractères est autorisée
userId = 42          -- ✓ un nombre est autorisé
userId = true        -- ✗ erreur de type : boolean ne fait pas partie de l’union

La variable peut contenir l'un ou l'autre des membres de l'union, et uniquement ceux-là. C'est la différence cruciale avec any : une union reste stricte quant aux valeurs autorisées, tout en t'offrant la flexibilité dont tu as besoin.

Les unions sont particulièrement utiles pour les paramètres de fonction qui acceptent plusieurs formats d'entrée :

function printId(id: number | string): ()
    print(id)
end

printId(42)          -- fonctionne avec un nombre
printId("user123")   -- fonctionne avec une chaîne de caractères

Tu connais déjà string?. C'était ta première union ! C'est simplement une forme abrégée de string | nil. Dans la prochaine leçon, tu apprendras à travailler en toute sécurité avec une valeur d'union une fois que tu en as une.

challenge icon

Défi

Facile

Accepte une valeur qui est un nombre ou une chaîne de caractères.

  1. Écris local function printId(id: number | string): () qui affiche id.
  2. Déclare local status: string | number = "active".
  3. Appelle printId(7) et printId("player7"), puis définis status = 200 et affiche-la.

Appuie sur Exécuter le code : la sortie affiche 7, player7 et 200.

Essayez vous-même

-- 1) printId(id: number | string): ()
-- 2) local status: string | number = "active"
-- 3) appelle printId(7) et printId("player7"), attribue 200 à status, puis affiche sa valeur

Toutes les leçons de Introduction à Luau

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