Menu
CoddyTech

Tipos Literais

Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 35 de 80.

Tipos como string permitem qualquer string, mas às vezes apenas alguns valores exatos fazem sentido. Um tipo literal usa o próprio valor como tipo:

local mode: "dark" = "dark"   -- apenas a string "dark" é permitida
local locked: true = true      -- apenas o booleano true é permitido

Por si só, tipos de valor único são uma curiosidade. Combinados com uniões, eles se tornam uma das ferramentas mais úteis do Luau: um conjunto estritamente controlado de valores permitidos:

type Direction = "north" | "south" | "east" | "west"
type GameState = "menu" | "playing" | "paused" | "gameover"

local move: Direction = "north"     -- ✓
local state: GameState = "playing"  -- ✓
-- local bad: Direction = "diagonal" -- ✗ erro de tipo!

Agora, um erro de digitação como "nort" ou um valor inválido como "diagonal" é detectado enquanto você edita; com uma string simples, ele passaria despercebido e causaria uma falha em tempo de execução, se você tiver sorte o bastante para percebê-la.

Tipos literais diferenciam maiúsculas de minúsculas e são exatos: "North" não corresponde a "north". Literais de string são o caso mais comum, mas literais booleanos e, nas versões mais recentes do Luau, numéricos funcionam da mesma forma. Esse padrão, uma união de literais de string, também é como o Luau substitui os enums de outras linguagens, como você verá em um capítulo posterior.

challenge icon

Desafio

Fácil

Permita apenas quatro nomes exatos de direção.

  1. Escreva type Direction = "north" | "south" | "east" | "west".
  2. Escreva local function movePlayer(direction: Direction): string retornando `Moving {direction}`.
  3. Declare local playerDirection: Direction = "east" e imprima movePlayer(playerDirection).

Pressione Executar código: a saída mostra Moving east.

Experimente você mesmo

-- 1) type Direction = "north" | "south" | "east" | "west"
-- 2) movePlayer(direction: Direction): string
-- 3) local playerDirection: Direction = "east", depois imprima o movimento

Todas as lições de Introdução ao Luau

Pratique por conta própria: Compilador de Luau online