Aparência
Enumerações (Enums)
As enumerações, ou enums, são uma característica poderosa do TypeScript que permite definir um conjunto de valores nomeados. Eles são úteis quando você tem um conjunto fixo de valores que representam algum tipo de estado ou categoria em sua aplicação, tornando o código mais legível e fácil de manter.
Criando Enums
No TypeScript, você pode definir enums usando a palavra-chave enum
. Vamos começar com um exemplo básico:
typescript
enum Direction {
Up,
Down,
Left,
Right,
}
Neste exemplo, criamos um enum chamado Direction
com quatro membros: Up
, Down
, Left
, e Right
. Por padrão, o TypeScript atribui valores numéricos começando de 0 para cada membro do enum. Ou seja, Direction.Up
será 0, Direction.Down
será 1, e assim por diante.
Usando Enums
Você pode usar enums para definir valores de variáveis ou parâmetros de função, garantindo que eles só possam assumir um dos valores definidos no enum:
typescript
let currentDirection: Direction = Direction.Up;
function move(direction: Direction) {
console.log("Moving in direction:", direction);
}
move(currentDirection); // Output: Moving in direction: 0
Enums com Valores Personalizados
Você também pode definir enums com valores personalizados, sejam eles numéricos ou strings:
Enums Numéricos Personalizados
typescript
enum StatusCode {
Success = 200,
NotFound = 404,
ServerError = 500,
}
let responseStatus: StatusCode = StatusCode.Success;
console.log(responseStatus); // Output: 200
Neste exemplo, atribuímos valores HTTP comuns a um enum StatusCode
. Cada membro do enum tem um valor numérico específico.
Enums de String
Enums de string permitem atribuir strings específicas como valores de enum, o que pode ser útil para estados ou categorias mais descritivas:
typescript
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
let currentDirection: Direction = Direction.Up;
console.log(currentDirection); // Output: UP
Enums Heterogêneos
Embora não seja uma prática comum, o TypeScript permite a criação de enums que misturam valores numéricos e strings:
typescript
enum MixedEnum {
No = 0,
Yes = "YES",
}
let answer: MixedEnum = MixedEnum.Yes;
console.log(answer); // Output: YES
Enums Computados e Constantes
Você também pode definir membros de enum com valores computados e constantes:
typescript
enum FileAccess {
None, // 0
Read = 1 << 1, // 2
Write = 1 << 2, // 4
ReadWrite = Read | Write, // 6
G = "123".length, // 3
}
Aqui, usamos operações de bit para definir valores. ReadWrite
é uma combinação de Read
e Write
, e G
é definido como o comprimento da string "123".
Trabalhando com Enums
Você pode obter o nome de um membro de enum a partir de seu valor:
typescript
enum Direction {
Up,
Down,
Left,
Right,
}
let directionName: string = Direction[0];
console.log(directionName); // Output: Up
Conclusão
Enums são uma ferramenta poderosa no TypeScript para criar conjuntos nomeados de valores constantes, facilitando a escrita de código mais legível, seguro e fácil de manter. Com enums, você pode representar estados e categorias de maneira clara e garantir que as variáveis assumam apenas valores válidos predefinidos. Use-os sempre que tiver um conjunto fixo de valores que façam sentido para seu contexto de aplicação. 🚀