Menu
Coddy logo textTech

Formas frente a tablas no estructuradas

Parte de la sección Introducción a Luau del Journey de Lua de Coddy — lección 40 de 73.

Ahora tienes dos formas de trabajar con tablas de registros: la forma loose que siempre has usado en Lua, y las formas declaradas. Vale la pena hacer una pausa para ver qué te aporta cada una.

Una tabla loose acepta cualquier cosa. Esa flexibilidad tiene un precio: escribe mal un campo (user.nmae) y obtendrás nil silently; olvida un campo y el error aparecerá muy lejos, en tiempo de ejecución, en cualquier código que toque primero ese hueco:

local user = {name = "Ana", age = 20}
print(user.nmae) -- loose table: silently prints nil

Declara una forma y esos errores pasarán del tiempo de ejecución al tiempo de edición. El comprobador señala el error tipográfico en el momento en que lo escribes, tu editor puede autocompletar nombres de campos y la declaración type sirve además como documentación de lo que contiene la table:

type User = {name: string, age: number}
local user: User = {name = "Ana", age = 20}
print(user.nmae) -- ✗ type error: key 'nmae' not found in User

Si vienes de TypeScript, ten en cuenta que Luau no tiene la palabra clave interfacetype maneja todas las formas. Tampoco hay "fusión de declaraciones": declarar dos tipos con el mismo nombre en el mismo alcance es un error, por lo que cada forma tiene exactamente una definición.

Las formas de Luau son estructurales: cualquier table con los campos correctos de los tipos correctos coincide, sin importar dónde o cómo se creó. Y las tablas loose siguen teniendo su lugar — los scripts rápidos y los datos verdaderamente dinámicos no necesitan una forma declarada. Sin embargo, para cualquier cosa que se pase entre funciones, una forma detecta los errores mientras aún son baratos de corregir.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

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