Anotaciones de forma en línea
Parte de la sección Introducción a Luau del Journey de Lua de Coddy — lección 37 de 73.
En Lua has estado usando tablas como registros durante mucho tiempo: local user = {name = "Ana", age = 20}. Nada te impide escribir mal el nombre de un campo, olvidar uno o almacenar un string donde corresponde un number; solo te enteras cuando el código se ejecuta.
Luau te permite describir la forma (shape) de dicha tabla directamente en la declaración, enumerando cada campo y su tipo entre llaves:
local user: {name: string, age: number} = {
name = "Ana",
age = 20,
}Compara esto con los tipos de tabla que ya conoces: {number} describe un array y {[string]: number} describe un mapa con cualquier clave string. Un shape es más preciso: nombra cada campo individualmente y le da a cada campo su propio tipo.
Una vez que se declara el shape, el comprobador de tipos verifica la tabla con respecto a él mientras editas. Un campo faltante o un tipo de valor incorrecto se marca antes de que el código se ejecute:
local user: {name: string, age: number} = {
name = "Ana",
age = "twenty", -- ✗ error de tipo: string no es un number
}Como siempre, la anotación no añade ningún comportamiento en tiempo de ejecución; la tabla es una tabla de Lua normal. Los shapes en línea (inline) son perfectos para estructuras únicas que no planeas reutilizar; en la siguiente lección le darás un nombre a los shapes.
Desafío
FácilCrea una variable llamada student con una anotación de forma inline que declare:
namede tipostringstudentIdde tiponumberisEnrolledde tipoboolean
Inicialízala con el name "Sarah Johnson", studentId 12345 e isEnrolled true.
Crea una segunda variable llamada course con una anotación de forma inline que declare:
titlede tipostringcreditsde tiponumberinstructorde tipostring
Inicialízala con el title "Introduction to Luau", credits 3 e instructor "Dr. Smith".
Imprime, cada uno en su propia línea:
- el nombre del estudiante
- el ID del estudiante
- el título del curso
- el número de créditos
Pruébalo tú mismo
-- Escribe código aquí
-- 1) declara student con una anotación de forma en línea
-- 2) declara course con una anotación de forma en línea
-- 3) imprime los cuatro campos solicitados
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
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 Luau4Trabajando con Funciones
Tipado de Parámetros y Valores de RetornoTipado de Funciones AnónimasFunciones que no Retornan NadaParámetros OpcionalesValores por Defecto en ParámetrosFunciones VariádicasDefinición de Tipos de FuncionesRecapitulaciones: Funciones Tipadas2Tipos principales
Tipos básicos: num, str, boolEl tipo 'any': Vía de escapeEl tipo 'unknown'Tipos nulos y opcionalesInferencia de tipos en acciónAnotaciones explícitas de tiposResumen: Práctica de tipos principales5Alias, 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 Maps
Arrays tipadosAñadir y leer elementos¿Qué es un tipo Map?Declarar y acceder a MapsIterar tablasTablas de forma mixtaArrays tipados multidimensionalestable.unpack y VarargsRecapitulaciones: Arrays y Maps6Definició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 tablas