Anotaciones de forma en línea
Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 39 de 80.
En Lua llevas mucho tiempo usando tablas como registros: local user = {name = "Ana", age = 20}. Nada te impide escribir mal el nombre de un campo, olvidarte de uno o almacenar una cadena donde debería ir un número. Solo te enteras cuando se ejecuta el código.
Luau te permite describir la forma de una tabla de este tipo directamente en la declaración, enumerando cada campo y su tipo entre llaves:
local user: {name: string, age: number} = {
name = "Ana",
age = 20,
}Compáralo con los tipos de tabla que ya conoces: {number} describe un arreglo y {[string]: number} describe un mapa con claves de cadena de cualquier valor. Una forma es más precisa. Nombra cada campo individualmente y asigna a cada campo su propio tipo.
Una vez declarada la forma, el comprobador de tipos verifica que la tabla se ajuste a ella mientras editas. Si falta un campo o el tipo de un valor es incorrecto, se señala antes de que se ejecute el código:
local user: {name: string, age: number} = {
name = "Ana",
age = "twenty", -- ✗ error de tipo: string no es un número
}Como siempre, la anotación no añade ningún comportamiento en tiempo de ejecución: la tabla es una tabla Lua normal. Las formas en línea son perfectas para estructuras puntuales que no planeas reutilizar; en la próxima lección les darás un nombre.
Desafío
FácilDescribe un registro de estudiante directamente en su declaración.
- Declara
local student: {name: string, studentId: number} = {name = "Sarah Johnson", studentId = 12345}. - Imprime
student.name, despuésstudent.studentId.
Pulsa Ejecutar código: la salida muestra Sarah Johnson y 12345.
Pruébalo tú mismo
-- 1) declara student con una anotación de estructura en línea
-- 2) imprime su nombre y luego su studentId
Todas las lecciones de Introducción a Luau
1Primeros pasos con Luau
¿Qué es Luau?¿Por qué usar Luau?Tu primer código en LuauComprobación de tipos y modos de errorRecapitulacion: Introducción a Luau4Trabajar con funciones
Tipado de parámetros y valores de retornoTipado de funciones anónimasFunciones que no devuelven nadaParámetros opcionalesValores predeterminados de parámetrosValores predeterminados para booleanosFunciones variádicasDefinir tipos de funcionesRepaso: funciones tipadas7Proyecto: Gestor de tareas tipado
Proyecto: La estructura de una tareaFunción para añadir una tarea2Tipos fundamentales
Número, cadena y booleanoEl tipo 'any': una salida de emergenciaEl tipo 'unknown'Tipos nulos y opcionalesLa inferencia de tipos en acciónAnotaciones de tipo explícitasRepaso: práctica de tipos fundamentales5Alias, Uniones e Intersecciones
Alias de tipos para primitivosTipos de uniónTrabajando con tipos de uniónTipos literalesTipos de intersecciónCombinando alias de tiposResumen: Combinaciones avanzadas de tipos3Tablas tipadas: arrays y mapas
Arrays tipadosAgregar y leer elementos¿Qué es un tipo mapa?Declarar y acceder a mapasRecorrer tablasTablas de formas mixtasLeer una cuadrículaConstruir una cuadrículatable.unpackRepaso: arrays y mapas6Definición de formas de tablas
Anotaciones de forma en líneaAlias de tipos para formasPropiedades opcionalesFormas frente a tablas no estructuradasExtensión de formasAñadir métodos a las formasEl parámetro 'self' y los métodos con dos puntosRecapitulación: Definición de formas de tablasPractica por tu cuenta: Compilador de Luau online