Tipos de unión
Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 31 de 73.
A veces un tipo no es suficiente. Un id de usuario puede llegar como "user123" o como 42. En Lua puro solo esperarías que todo salga bien; Luau te ofrece tipos unión — la barra vertical | se lee como "o":
local userId: number | string
userId = "user123" -- ✓ se permite un string
userId = 42 -- ✓ se permite un number
userId = true -- ✗ error de tipo: boolean no está en la uniónLa variable puede contener cualquiera de los miembros de la unión — y solo esos. Esa es la diferencia crucial con any: una unión se mantiene estricta sobre lo que está permitido mientras te da la flexibilidad que necesitas.
Las uniones son especialmente útiles para parámetros de función que aceptan múltiples formatos de entrada:
function printId(id: number | string): ()
print(id)
end
printId(42) -- funciona con un número
printId("user123") -- funciona con una cadenaYa conoces string? — ¡esa fue tu primera unión! Es simplemente un atajo para string | nil. En la siguiente lección aprenderás cómo trabajar de forma segura con un valor de tipo unión una vez que lo tengas.
Desafío
FácilCrea una función llamada printId que reciba id: number | string y lo imprima — tipo de retorno explícito ().
Declara una variable status de tipo string | number, inicializada en "<code>active".
Después, en orden:
- Llama a
printId(42) - Llama a
printId("<code>user123") - Imprime
status - Reasigna
statusa200y vuelve a imprimirlo
Cuatro líneas de salida en total.
Pruébalo tú mismo
-- Escribe código aquí
-- printId(id: number | string): ()
-- local status: string | number = el texto exacto de las instrucciones
-- llama a printId(42), printId(el texto exacto de las instrucciones),
-- imprime status, reasigna a 200, imprime de nuevo
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 MapsPractica por tu cuenta: Compilador de Lua online