Menu
Coddy logo textTech

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

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

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

challenge icon

Desafío

Fácil

Crea 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:

  1. Llama a printId(42)
  2. Llama a printId("user123")
  3. Imprime status
  4. Vuelve a asignar status a 200 e 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
quiz iconPonte a prueba

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