Tipos de unión
Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 33 de 80.
A veces un solo tipo no es suficiente. Un identificador de usuario puede llegar como "user123" o como 42. En Lua puro, simplemente esperarías tener suerte; Luau te ofrece tipos unión: la barra vertical | se lee como «o»:
local userId: number | string
userId = "user123" -- ✓ se permite una cadena de texto
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 fundamental con any: una unión mantiene restricciones estrictas sobre lo que está permitido y, a la vez, te da 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 de textoYa conoces string?. ¡Esa fue tu primera unión! Es simplemente una forma abreviada 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ácilAcepta un valor que sea un número o una cadena.
- Escribe
local function printId(id: number | string): ()para imprimirid. - Declara
local status: string | number = "active". - Llama a
printId(7)yprintId("player7"), después asignastatus = 200e imprímelo.
Pulsa Ejecutar código: el resultado muestra 7, player7 y 200.
Pruébalo tú mismo
-- 1) printId(id: number | string): ()
-- 2) local status: string | number = "active"
-- 3) llama a printId(7) y printId("player7"), asigna 200 a status e imprímelo
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 Luau4Trabajar con funciones
Tipado de parámetros y valores de retornoTipado de funciones anónimasFunciones que no devuelven nadaParámetros opcionalesValores predeterminados de parámetrosValores predeterminados para booleanosFunciones variádicasDefinir tipos de funcionesRepaso: funciones tipadas7Proyecto: Gestor de tareas tipado
Proyecto: La estructura de una tareaFunción para añadir una tarea2Tipos fundamentales
Número, cadena y booleanoEl tipo 'any': una salida de emergenciaEl tipo 'unknown'Tipos nulos y opcionalesLa inferencia de tipos en acciónAnotaciones de tipo explícitasRepaso: práctica de tipos fundamentales5Alias, 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 mapas
Arrays tipadosAgregar y leer elementos¿Qué es un tipo mapa?Declarar y acceder a mapasRecorrer tablasTablas de formas mixtasLeer una cuadrículaConstruir una cuadrículatable.unpackRepaso: arrays y mapasPractica por tu cuenta: Compilador de Luau online