Categorias do Site

Como iterar enums no TypeScript: exemplos práticos

Aprenda a iterar sobre enums no TypeScript com exemplos de código práticos, usando Object.keys(), Object.values() e mais.

Logotipo azul com as letras

Enums são comuns na programação moderna, usados para modelar categorias como estados de semáforos ou dias da semana. No TypeScript, evoluíram de mapeamentos simples para estruturas mais complexas.

How To Iterate Over Enums In TypeScript

Uma vantagem dos enums é facilitar o mapeamento de listas curtas de valores em números, tornando comparações mais simples. Este artigo explora diferentes métodos para iterar sobre enums no TypeScript.

Resposta rápida

Se precisar extrair chaves ou valores numéricos de um objeto no JavaScript, aqui estão três abordagens comuns:

  • Use Object.keys() com filtragem para obter chaves que representam números.
  • Use Object.values() e filtre valores que sejam números.
  • Use Object.entries() para filtrar chaves e valores com base em serem numéricos.
// Opção 1: Obter apenas chaves numéricas (chaves como strings, filtrar as que convertem para números) const numericKeys = Object.keys(obj).filter(key => !isNaN(Number(key)));

// Opção 2: Obter apenas valores numéricos const numericValues = Object.values(obj).filter(value => typeof value === 'number');

// Opção 3: Obter entradas com chaves ou valores numéricos (exemplo de filtro personalizado) const numericEntries = Object.entries(obj).filter(([key, value]) => !isNaN(Number(key)) || typeof value === 'number');

Por que iterar através de enums no TypeScript?

Os enums no TypeScript são objetos simples. Por exemplo:

enum TrafficLight { Green = 1, Yellow, Red }

Na definição acima, Green é mapeado para o número 1. Os membros subsequentes são mapeados para inteiros autoincrementados.

Às vezes, queremos iterar sobre um enum do TypeScript para realizar ações, como renderizar opções em uma UI ou validar valores de entrada.

Casos de uso e tipos de enums

Antes de explorar técnicas de iteração, é importante entender quais métodos funcionam melhor dependendo do tipo de enum com que você está lidando.

Enums numéricos criam um mapeamento reverso que inclui chaves e valores numéricos, exigindo filtragem para evitar entradas duplicadas. Enums de string são objetos mais simples sem mapeamentos reversos, então filtrar por tipo é geralmente suficiente.

Como iterar sobre um enum no TypeScript?

Você pode iterar sobre enums no TypeScript usando uma das seguintes abordagens, dependendo do tipo de enum e de suas necessidades:

Usando métodos de objeto para iterar sobre enums no TypeScript

A maneira mais simples de iterar sobre um enum no TypeScript é convertê-lo em um array usando os métodos incorporados Object.keys() e Object.values(). O primeiro retorna um array contendo as chaves do objeto enum, e o último retorna um array de valores do enum.

O código a seguir mostra como usar o método incorporado de objeto para listar as chaves e os valores de um enum:

const keys = Object.keys(TrafficLight)

keys.forEach((key, index) => {
        console.log(`${key} has index ${index}`)
})

O exemplo acima imprime o seguinte:

"1 has index 0"
"2 has index 1"
"3 has index 2"
"Green has index 3"
"Yellow has index 4"
"Red has index 5"

Veja como as chaves numéricas aparecem primeiro? Isso ocorre porque enums numéricos geram um mapeamento reverso. Se quisermos listar apenas as chaves de string, precisaremos filtrar as numéricas:

const stringKeys = Object
    .keys(TrafficLight)
    .filter((v) => isNaN(Number(v)))

stringKeys.forEach((key, index) => {
    console.log(`${key} has index ${index}`)
})

Neste caso, o snippet acima imprime o seguinte:

"Green has index 0"
"Yellow has index 1"
"Red has index 2"
  • Construtores de Sites com IA Facilitam WordPress?

    Descubra como construtores de sites com IA podem simplificar o uso do WordPress para iniciantes e profissionais.

    Descubra como construtores de sites com IA podem simplificar o uso do WordPress para iniciantes e profissionais.

    Ler notícia completa
    Homem confuso observa uma tela grande de computador enquanto um robô aponta para ela, com o texto
  • Quando usar Flexbox e CSS Grid

    Aprenda a escolher entre Flexbox e CSS Grid para criar layouts responsivos e escaláveis em projetos de web design.

    Aprenda a escolher entre Flexbox e CSS Grid para criar layouts responsivos e escaláveis em projetos de web design.

    Ler notícia completa
    Letras brancas
  • CSS breakpoints: layouts fluidos e adaptáveis

    Descubra como breakpoints CSS criam layouts responsivos, otimizando a experiência do usuário em dispositivos variados.

    Descubra como breakpoints CSS criam layouts responsivos, otimizando a experiência do usuário em dispositivos variados.

    Ler notícia completa
    Logotipo
  • Otimização de Front-end com Ferramentas de Banco no Navegador

    Os sandboxes de banco de dados no navegador ajudam desenvolvedores front-end a gerenciar dados diretamente em seus navegadores. Isso possibilita interfaces de usuário dinâmicas, aplicativos offline e testes rápidos sem precisar de sistemas backend complexos. Essas ferramentas leves, que usam APIs como IndexedDB, facilitam o armazenamento, pesquisa e sincronização de dados. Algumas oferecem recursos de […]

    Melhore o fluxo de trabalho front-end com ferramentas de banco de dados no navegador, facilitando interfaces dinâmicas e testes rápidos.

    Ler notícia completa
    Ícone estilizado de um laptop sobre um fundo texturizado que parece papel amassado.
  • Melhores Ações Photoshop de Vazamento de Luz 2025

    Vazamentos de luz são efeitos populares na fotografia que conferem às suas fotos uma aparência quente, vintage e nostálgica. Criá-los do zero pode ser demorado e desafiador, mas as ações do Photoshop simplificam o processo, permitindo que você obtenha o visual desejado com poucos cliques. Esta coleção de ações de efeito de vazamento de luz […]

    Descubra as melhores ações de Photoshop para efeitos de vazamento de luz e dê um toque vintage e nostálgico às suas fotos.

    Ler notícia completa
    Casal relaxa no teto de uma van azul estilo vintage estacionada ao lado de uma falésia com vista para o oceano ao pôr do sol.
  • Minha Jornada do Colapso Psíquico à Pesquisa em IA

    AVISO Este artigo detalha experiências pessoais com reestruturação cognitiva facilitada por IA, de natureza subjetiva e experimental. Estas percepções não são conselhos médicos e não devem ser interpretadas como aplicáveis universalmente. Os leitores devem abordar esses conceitos com cautela, entendendo que mais pesquisas são necessárias para avaliar plenamente potenciais e riscos. O objetivo do autor […]

    Descubra como um colapso psíquico levou à transformação em pesquisador de IA, explorando limites éticos e alinhamento com a tecnologia.

    Ler notícia completa
    Uma pessoa observando um perfil gigante de cabeça humana iluminada com padrões de luz que se assemelham a circuitos, contra um céu noturno estrelado.
  • Como iterar enums no TypeScript: exemplos práticos

    Enums são comuns na programação moderna, usados para modelar categorias como estados de semáforos ou dias da semana. No TypeScript, evoluíram de mapeamentos simples para estruturas mais complexas. Uma vantagem dos enums é facilitar o mapeamento de listas curtas de valores em números, tornando comparações mais simples. Este artigo explora diferentes métodos para iterar sobre […]

    Aprenda a iterar sobre enums no TypeScript com exemplos de código práticos, usando Object.keys(), Object.values() e mais.

    Ler notícia completa
    Logotipo azul com as letras
  • Como importar SVGs no Next.js: Guia 2025

    SVGs estão por toda parte — ícones, logotipos, ilustrações animadas e até mesmo em detalhes sutis de UI. Integrá-los em um projeto moderno do Next.js (v14+) pode não ser tão simples. Este guia oferece orientações atualizadas para 2025 sobre os métodos mais comuns de SVG, com exemplos novos e ajuda específica para usuários de App […]

    Aprenda a importar SVGs em apps Next.js com métodos atualizados para 2025, incluindo dicas para App Router e TypeScript.

    Ler notícia completa
    Um grande círculo preto com uma barra branca formando a letra
  • Componentes de um bom brief de recursos

    Monique Piras é Diretora Sênior de Gestão de Produtos na Ironclad, liderando a equipe de plataforma central da empresa, abrangendo infraestrutura Google Cloud, produtividade de desenvolvedores, gestão de identidade e acesso, integrações nativas, APIs, ecossistemas de parceiros externos, plataforma de dados, serviços fundamentais e sistemas de UI/design. Monique iniciou sua carreira como engenheira de software […]

    Descubra os componentes essenciais de um bom brief de recursos segundo Monique Piras e melhore a colaboração em sua equipe.

    Ler notícia completa
    Retrato de uma mulher sorridente com o nome Monique Piras, designada como Senior Director of Product Management na Ironclad, sobre um fundo gráfico azul com logos da LogRocket e Ironclad.