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

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 con "<code>active".

Después, en orden:

  1. Llama a printId(42)
  2. Llama a printId("<code>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 = 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
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

Practica por tu cuenta: Compilador de Lua online