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’unionLa 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èresTu 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.
Défi
FacileAccepte une valeur qui est un nombre ou une chaîne de caractères.
- Écris
local function printId(id: number | string): ()qui afficheid. - Déclare
local status: string | number = "active". - Appelle
printId(7)etprintId("player7"), puis définisstatus = 200et 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
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