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 puede llegar como "user123" o como 42. En Lua puro solo esperarías que todo salga bien; Luau te ofrece tipos unión (union types) — la tubería | 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 una forma abreviada de string | nil. En la siguiente lección aprenderás cómo trabajar de forma segura con un valor de unión una vez que 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 en "active".
Después, en orden:
- Llama a
printId(42) - Llama a
printId("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 = "active"
-- llama a printId(42), printId("user123"),
-- 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 Maps