Atualizado: 21/06/2025

Este conteúdo é original e não foi gerado por inteligência artificial.

Utilizando Enumerações (Enum) em TypeScript

O tipo enum ou enumeração permite definir um conjunto de constantes nomeadas que descrevem certos estados.

Para definir uma enumeração, utiliza-se a palavra-chave enum. Por exemplo, vamos declarar a seguinte enumeração:

enum Season {
  Winter,
  Spring,
  Summer,
  Autumn,
}

Agora, vamos usar a enumeração:

enum Season {
  Winter,
  Spring,
  Summer,
  Autumn,
}
let current: Season = Season.Summer;
console.log(current); // 2
current = Season.Autumn; // alterando o valor

Aqui, criamos a variável current, que tem o tipo Season. O console do navegador exibirá o número 2: o valor da constante Season.Summer.

Enumerações numéricas

Por padrão, as constantes da enumeração representam valores numéricos. Ou seja, é uma enumeração numérica em que cada constante é associada a um valor numérico.

A enumeração criada acima:

enum Season {
  Winter,
  Spring,
  Summer,
  Autumn,
}

É, na verdade, equivalente a:

enum Season {
  Winter = 0,
  Spring = 1,
  Summer = 2,
  Autumn = 3,
}

Podemos redefinir explicitamente esses valores. Se atribuirmos um valor a uma constante, os valores das constantes seguintes serão incrementados em um:

enum Season {
  Winter = 5,
  Spring,
  Summer,
  Autumn,
} // 5, 6, 7, 8

Ou podemos atribuir um valor específico a cada constante:

enum Season {
  Winter = 4,
  Spring = 8,
  Summer = 16,
  Autumn = 32,
} // 4, 8, 16, 32

Também podemos obter diretamente o valor textual:

enum Season {
  Winter = 0,
  Spring = 1,
  Summer = 2,
  Autumn = 3,
}
var current: string = Season[2]; // Summer
console.log(current); // Summer

Enumerações de strings

Além das enumerações numéricas, o TypeScript possui enumerações de strings, cujas constantes assumem valores textuais:

enum Season {
  Winter = "Inverno",
  Spring = "Primavera",
  Summer = "Verão",
  Autumn = "Outono",
}
var current: Season = Season.Summer;
console.log(current); // Verão

Enumerações heterogêneas mistas

Também é possível definir enumerações mistas, cujas constantes podem ser números e strings.

enum Season {
  Winter = 1,
  Spring = "Primavera",
  Summer = 3,
  Autumn = "Outono",
}
var current: Season = Season.Summer;
console.log(current); // 3
console.log(Season.Autumn); // Outono

Enumerações em funções

A enumeração pode ser usada como parâmetro de função.

enum DayTime {
  Morning,
  Evening,
}
function welcome(dayTime: DayTime) {
  if (dayTime === DayTime.Morning) {
    console.log("Bom dia");
  } else {
    console.log("Boa noite");
  }
}
let current: DayTime = DayTime.Morning;
welcome(current); // Bom dia
welcome(DayTime.Evening); // Boa noite

Cada constante da enumeração descreve um certo estado. A função welcome() recebe esse estado como parâmetro dayTime e, dependendo do valor recebido, exibe uma mensagem específica no console.

No entanto, é importante notar que, como a enumeração DayTime é numérica, podemos passar valores numéricos para a função welcome():

welcome(1); // Boa noite

Ou até mesmo definir o parâmetro da função como numérico e passar constantes da enumeração numérica:

enum DayTime {
  Morning,
  Evening,
}
function welcome(dayTime: number) {
  if (dayTime === DayTime.Morning) {
    console.log("Bom dia");
  } else {
    console.log("Boa noite");
  }
}
let current: DayTime = DayTime.Morning;
welcome(current); // Bom dia
welcome(DayTime.Evening); // Boa noite

Exemplo com parâmetro de enumeração de strings:

enum DayTimeMessage {
  Morning = "Bom dia",
  Evening = "Boa noite",
}
function welcome(message: DayTimeMessage) {
  console.log(message);
}
let mes: DayTimeMessage = DayTimeMessage.Morning;
welcome(mes); // Bom dia
welcome(DayTimeMessage.Evening); // Boa noite

Ao usar enumerações de strings, ao contrário das numéricas, não podemos passar uma string arbitrária ao parâmetro:

welcome("Olá, você está acordado?");

Nesse caso, o compilador nos retornará um erro durante a compilação.

Por outro lado, se o parâmetro for do tipo string, podemos passar tanto strings quanto constantes da enumeração de strings:

enum DayTimeMessage {
  Morning = "Bom dia",
  Evening = "Boa noite",
}
function welcome(message: string) {
  console.log(message);
}
let mes: DayTimeMessage = DayTimeMessage.Morning;
welcome(mes); // Bom dia
welcome(DayTimeMessage.Evening); // Boa noite
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com