Por que usar Luau?
Parte da seção Introdução ao Luau do Journey de Lua da Coddy — lição 2 de 73.
O sistema de tipos do Luau oferece três grandes benefícios que tornam o desenvolvimento mais seguro e eficiente.
Detecte erros cedo: o verificador de tipos analisa seu código enquanto você edita, antes de executá-lo. Considere um erro clássico do Lua — passar nil onde um número é esperado:
-- Lua: nothing warns you about this
local function calculateTotal(price, tax)
return price + tax
end
print(calculateTotal(nil, 0.1))
-- ✗ runtime error: attempt to perform arithmetic on nilNo Lua puro, esse erro só acontece quando a chamada inválida finalmente é executada — talvez na frente dos seus usuários. Pior ainda, o Lua às vezes esconde o bug completamente: "50" + 0.1 converte a string silenciosamente e retorna 50.1… até o dia em que a string não for numérica. Com as anotações do Luau, o erro é apontado imediatamente:
local function calculateTotal(price: number, tax: number): number
return price + tax
end
calculateTotal(nil, 0.1) -- ✗ type error while editing: nil is not a numberMelhor legibilidade do código: as anotações servem como documentação. price: number diz a você e aos seus colegas de equipe exatamente o que uma função espera e retorna — sem adivinhações, sem ter que investigar a implementação.
Ferramentas de desenvolvimento aprimoradas: como o editor conhece o tipo de cada variável, você obtém autocompletar preciso, refatorações mais seguras e navegação mais inteligente. Digite um ponto após um valor tipado e o editor lista exatamente o que está disponível.
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Introdução ao Luau
1Começando com o Luau
O que é Luau?Por que usar Luau?Seu primeiro código em LuauVerificação de tipos e modos de erroRecapitulando: Introdução ao Luau4Trabalhando com Funções
Tipando Parâmetros e Valores de RetornoTipando Funções AnônimasFunções que Não Retornam NadaParâmetros OpcionaisValores Padrão para ParâmetrosFunções VariádicasDefinindo Tipos de FunçõesRecapitulação: Funções Tipadas2Tipos Fundamentais
Tipos Básicos: num, str, boolO Tipo 'any': Escape HatchO Tipo 'unknown'Tipos Nil e OpcionaisInferência de Tipos na PráticaAnotações Explícitas de TiposReciclagem: Prática de Tipos Fundamentais5Aliases, Uniões, Interseções
Aliases de Tipos para PrimitivosTipos de UniãoTrabalhando com Tipos de UniãoTipos LiteraisTipos de InterseçãoCombinando Aliases de TiposRecapitulando: Combinações Avançadas de Tipos3Tabelas Tipadas: Arrays e Maps
Arrays TipadosAdicionando e Lendo ElementosO que é um Tipo Map?Declarando e Acessando MapsIterando Sobre TabelasTabelas de Formato MistoArrays Tipados Multidimensionaistable.unpack e VarargsRecapitulando: Arrays e Maps