Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Enum e declaração
  2. Acessando membro
  3. Percorrendo um enum
  4. Membro computado
  5. Parâmetro e retorno
  6. Vetor/matriz de enum

O tipo enum ou enumerador é composto de um ou mais constantes que são declaradas como seus membros. Se os membros não forem iniciados, os valor inteiros 0 a N elementos serão associado de forma sequencial.

Se um membro for iniciado, os membros seguintes sem terão seus valores baseados no membro anteriormente iniciado, sendo incrementando.

A declaração de um enum e de uma variável do tipo enum são feita em TS de acordo com as sintaxes abaixo:

Sintaxe
enum NOME_ENUM
{
  MEMBRO1, //0
  MEMBRO2,
  MEMBRON //N
};

Por serem constantes os membros de um enumerador, por boa práticas, seus nomes são declarados em caixa alta.

O acesso aos membros de um enum é feito pelo seu próprio nome seguido do nome do membro desejado:

Sintaxe
nome_enum:NOME_MEMBRO; 
Exemplo 1
enum MEU_ENUM
{
    OPCAO1 = 1,
    OPCAO2,
    OPCAO3,
}

let ve:MEU_ENUM = MEU_ENUM.OPCAO1;
Saída
-

A linguagem TS permite também que string sejam utilizados como valores atribuídos aos membros de um enum como pode ser visto no exemplo abaixo:

Exemplo 2
enum MEU_ENUM
{
    OPCAO1 = "OPCAO1",
    OPCAO2 = "OPCAO2",
    OPCAO3 = "OPCAO3"
}

let ve:MEU_ENUM = MEU_ENUM.OPCAO1;
Saída
-

A linguagem TS permite que a recuperação de valores e nome de membros de enum utilizando o indexador []. Tendo em mãos um valor podemos recuperar seu nome de membro e vice-versa.

Sintaxe
nome_enum[valor] : string;
nome_enum["NOME_MEMBRO"] : number;
Exemplo 3
enum MEU_ENUM
{
    OPCAO1 = 1,
    OPCAO2,
    OPCAO3
}

console.log(MEU_ENUM["OPCAO1"]);
console.log(MEU_ENUM["OPCAO2"]);
console.log(MEU_ENUM["OPCAO3"]);

console.log(MEU_ENUM[1]);
console.log(MEU_ENUM[2]);
console.log(MEU_ENUM[3]);
Saída
1 
2 
3 
"OPCAO1" 
"OPCAO2" 
"OPCAO3"

Para percorrer os membros de um enum, utilizamos os comandos de repetição vistos anteriormente. O comando for-of pode ser utilizados, por exemplo. O método entries será utilizado para retornar todas as chave e valores.

Exemplo 4
enum MEU_ENUM
{
    OPCAO1 = 1,
    OPCAO2,
    OPCAO3
}

for (let [c,v] of Object.entries(MEU_ENUM))
    console.log(c,v)
Saída
"1",  "OPCAO1" 
"2",  "OPCAO2" 
"3",  "OPCAO3" 
"OPCAO1",  1 
"OPCAO2",  2 
"OPCAO3",  3 

Além da associação com valores inteiros e string como valores de membros de enumeradores, a linguagem TS permite também que os valores dos membros de enumeradores sejam computados com uso de funções e expressões.

Sintaxe
enum NOME_ENUM
{
  MEMBRO1 = expressao1,
  MEMBRO2 = expressao2,
  MEMBRON = expressaoN
};
Exemplo 5
enum MEU_ENUM
{
    OPCAO1 = 1*2,
    OPCAO2 = 1 + "string",
    OPCAO3 = funcao(2),
}

console.log(MEU_ENUM["OPCAO1"]);
console.log(MEU_ENUM["OPCAO2"]);
console.log(MEU_ENUM["OPCAO3"]);
Saída
2 
1string
4

Há restrições em relação aos tipos de dados utilizados como expressão-valor de um enumerador.

O uso de enum como parâmetro de um função e argumento é semelhante aos outros tipos de dados vistos.

Sintaxe
function nome_funcao( nome_param:nome_enum ): nome_enum
{
  //corpo
  return variavel_enum;
}
Exemplo 6
enum MEU_ENUM
{
    OPCAO1 = 1,
    OPCAO2,
    OPCAO3
}

function funcao(p:MEU_ENUM):MEU_ENUM {
    console.log(p)
    return MEU_ENUM.OPCAO3
}

let ret:MEU_ENUM = funcao(MEU_ENUM.OPCAO1);
console.log(ret)
Saída
1
3

Para saber mais sobre parâmetros/argumentos, visite Typescript: Funções.

  1. 27/08/2025 - revisão 2 - Ajustes: pontuais, sintaxes e objetivos
  2. 13/09/2024 - revisão 1 - Ajustes gramaticais
  3. 28/02/2024 - versão inicial