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.

GrupoTipos Básicos
TipoTipo
Modo strictNã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 = 0Membros 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.
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.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%