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 solo tipo no es suficiente. Un ID de usuario podría llegar como "user123" o como 42. En Lua puro, simplemente cruzarías los dedos; Luau te ofrece tipos unión: la barra vertical | se lee como «o»:
local userId: number | string
userId = "user123" -- ✓ se permite una cadena
userId = 42 -- ✓ se permite un número
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 mantiene restricciones estrictas sobre lo que se permite, a la vez que te ofrece la flexibilidad que necesitas.
Las uniones son especialmente útiles para los parámetros de funciones que aceptan varios formatos de entrada:
function printId(id: number | string): ()
print(id)
end
printId(42) -- funciona con un número
printId("user123") -- funciona con una cadena¿Ya conoces string?? ¡Esa fue tu primera unión! Es simplemente una abreviatura de string | nil. En la próxima lección aprenderás a trabajar de forma segura con un valor de unión cuando ya tengas uno.
Desafío
FácilCrea una función llamada printId que tome id: number | string y lo imprima: tipo de retorno explícito ().
Declara una variable status de tipo string | number, inicializada con "<code>active".
Después, en orden:
- Llama a
printId(42) - Llama a
printId("<code>user123") - Imprime
status - Vuelve a asignar
statusa200e imprímelo de nuevo
Cuatro líneas de salida en total.
Pruébalo tú mismo
-- Escribe código aquí
-- printId(id: number | string): ()
-- local status: string | number = the exact text from the instructions
-- llama a printId(42), printId(the exact text from the instructions),
-- 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