Types unions
Fait partie de la section Introduction à Luau du Journey Lua de Coddy — leçon 31 sur 73.
Parfois, un seul type ne suffit pas. Un identifiant utilisateur peut arriver sous forme de "user123" ou de 42. En Lua pur, vous espéreriez simplement le meilleur ; Luau vous donne des types union — le symbole pipe | se lit « ou » :
local userId: number | string
userId = "user123" -- ✓ une chaîne est autorisée
userId = 42 -- ✓ un nombre est autorisé
userId = true -- ✗ erreur de type : boolean n'est pas dans l'unionLa variable peut contenir n'importe quel membre de l'union — et seulement ceux-là. C'est la différence cruciale avec any : une union reste stricte sur ce qui est autorisé tout en vous donnant la flexibilité dont vous avez 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îneVous connaissez déjà string? — c'était votre première union ! C'est simplement un raccourci pour string | nil. Dans la prochaine leçon, vous apprendrez comment manipuler en toute sécurité une valeur d'union une fois que vous en avez une.
Défi
FacileCréez une fonction nommée printId qui prend id: number | string et l'affiche — type de retour explicite ().
Déclarez une variable status de type string | number, initialisée à "active".
Ensuite, dans l'ordre :
- Appelez
printId(42) - Appelez
printId("user123") - Affichez
status - Réaffectez
statusà200et affichez-le à nouveau
Quatre lignes de sortie au total.
Essayez vous-même
-- Écrivez le code ici
-- printId(id: number | string): ()
-- local status: string | number = "active"
-- appelez printId(42), printId("user123"),
-- affichez status, réassignez à 200, affichez à nouveau
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
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
Typage des paramètres et valeurs de retourTypage des fonctions anonymesFonctions ne retournant rienParamètres optionnelsValeurs par défaut des paramètresFonctions variadiquesDéfinition des types de fonctionsRécapitulatif : Fonctions typées2Types fondamentaux
Types de base : num, str, boolLe type 'any' : la porte de sortieLe type 'unknown'Types Nil et optionnelsL'inférence de type en actionAnnotations explicites de typeRécapitulatif : Pratique des 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ésAjout et lecture d'élémentsQu'est-ce qu'un type Map ?Déclaration et accès aux MapsItération sur les tablesTables à formes mixtesTableaux typés multidimensionnelstable.unpack et VarargsRécapitulatif : Tableaux et Maps