enum Tipo enum
Última atualização: 2026-10-22
enum Tipo enum
Enums agrupam constantes relacionadas sob um namespace, onde os membros são tanto tipos quanto valores. Enums numéricos se auto-incrementam a partir de 0; enums de string recebem valores explícitos e são mais legíveis.
| Grupo | Tipos Básicos |
|---|---|
| Tipo | Tipo |
| Modo strict | Não necessário |
ℹ️ Info O editor transpila TypeScript para JavaScript e o executa (sem verificação de tipos); veja a Saída de cada exemplo para o resultado da verificação.
📝 Sintaxe
enum Direction { Up, Down } // enum numérico: 0, 1
enum Level { Info = "info", Error = "error" } // enum de string
⚙️ Parâmetros
| Member = 0 | Membros numéricos se auto-incrementam a partir de 0 (podem receber valor explícito); membros de string devem ser atribuídos explicitamente |
|---|---|
| Enum[key] | Apenas enums numéricos suportam a busca reversa Direction[0]; enums de string não |
Retorno:Enums geram um objeto real em tempo de execução — diferente de interface/type, não são tipos puros.
▶ Exemplo
Edite o código abaixo e clique em Testar para ver o resultado transpilado:
Saída:
1 Shipped
warn
(Saída de execução após a transpilação; Paid tem índice 1 e OrderStatus[2] mapeia reversamente para Shipped)
💡 Observações
ℹ️ Info Enums numéricos têm um mapa reverso (OrderStatus[1] → "Paid"); enums de string não têm.
💡 Dica Enums de string continuam significativos em logs e dados serializados ("warn" em vez de 1) — prefira-os em APIs públicas.
⚠️ Atenção Enums se sobrepõem a uniões de literais; muitas equipes preferem as uniões (sem código em runtime). Comece com uniões de literais em projetos novos e use enums apenas quando necessário.
🏷️ Tipos Básicos Relacionados
💡 Casos relacionados
Mais casos em breve.
📚 Tutoriais relacionados
❓ Perguntas frequentes
P enum ou união de literais?
R Ambos restringem valores. Enums são objetos reais usáveis em runtime; uniões de literais não custam nada em runtime e interoperam com strings comuns. Uniões de literais vencem na maioria dos casos.
P Como funciona a numeração padrão de enums numéricos?
R O auto-incremento começa em 0; após um valor explícito, os membros seguintes continuam a partir dele: { A, B = 5, C } gera 0, 5, 6.
P O que é const enum?
R const enum inlina as referências aos membros em tempo de compilação, sem emitir o objeto enum. Tem problemas com compilação isolada (Babel/swc) — prefira objetos as const em configurações modernas.