Menu
CoddyTech

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ón

La 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 texto

Ya 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.

challenge icon

Desafío

Fácil

Acepta un valor que sea un número o una cadena.

  1. Escribe local function printId(id: number | string): () para imprimir id.
  2. Declara local status: string | number = "active".
  3. Llama a printId(7) y printId("player7"), después asigna status = 200 e 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

Practica por tu cuenta: Compilador de Luau online