Annotations de structures en ligne
Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 39 sur 80.
En Lua, tu utilises depuis longtemps les tables comme enregistrements : local user = {name = "Ana", age = 20}. Rien ne t’empêche de mal orthographier un champ, d’en oublier un ou de stocker une chaîne là où un nombre est attendu. Tu ne t’en rends compte qu’à l’exécution du code.
Luau te permet de décrire la forme d’une telle table directement dans la déclaration, en énumérant chaque champ et son type entre accolades :
local user: {name: string, age: number} = {
name = "Ana",
age = 20,
}Compare cela aux types de tables que tu connais déjà : {number} décrit un tableau et {[string]: number} décrit une map avec des clés de type chaîne quelconques. Une forme est plus précise. Elle nomme chaque champ individuellement et attribue à chacun son propre type.
Une fois la forme déclarée, le vérificateur de types contrôle la table par rapport à celle-ci pendant que tu modifies le code. Un champ manquant ou une valeur du mauvais type est signalé avant même l’exécution du code :
local user: {name: string, age: number} = {
name = "Ana",
age = "twenty", -- ✗ erreur de type : string n'est pas un nombre
}Comme toujours, l’annotation n’ajoute aucun comportement à l’exécution : la table reste une simple table Lua. Les formes en ligne sont parfaites pour les structures ponctuelles que tu ne prévois pas de réutiliser ; dans la prochaine leçon, tu donneras un nom aux formes.
Défi
FacileDécris l’enregistrement d’un étudiant directement dans sa déclaration.
- Déclare
local student: {name: string, studentId: number} = {name = "Sarah Johnson", studentId = 12345}. - Affiche
student.name, puisstudent.studentId.
Appuie sur Exécuter le code : la sortie affiche Sarah Johnson et 12345.
Essayez vous-même
-- 1) déclarer student avec une annotation de structure en ligne
-- 2) afficher son nom, puis son studentId
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 maps6Typage des structures de tables
Annotations de structures en ligneAlias de types pour les structuresPropriétés optionnellesStructures vs tables libresExtension de structuresAjout de méthodes aux structuresMéthodes avec Self et deux-pointsRécapitulatif : Définir des structures de tablesEntraînez-vous par vous-même : Compilateur Luau en ligne