TypeScript é um superconjunto de JavaScript que ajuda a escrever código com segurança de tipo.
Com o TypeScript, você poderá detectar bugs mais cedo e corrigi-los. Um dos recursos importantes do TypeScript são Enums. Um Enum é uma construção popular em TypeScript que ajuda você a escrever um código mais seguro.
Neste artigo, explicarei Enums, como criá-los e usá-los e muitas outras coisas a serem consideradas.
últimas postagens
O que é um Enum?
Enum é a abreviação de tipo enumerado. Um tipo de dados enumerado é definido pelos diferentes valores que uma variável desse tipo pode assumir. Os diferentes valores que pode assumir são frequentemente chamados de membros ou elementos.
Neste artigo, iremos chamá-los de membros. Enums não são apenas um recurso do TypeScript. Em vez disso, os tipos enumerados também estão presentes e são usados em outras linguagens de programação. O uso de enums permite melhor segurança de tipo em programas TypeScript.
Leia também: Principais bibliotecas TypeScript e tempo de execução para conhecer como desenvolvedor
Por que usar enumerações?
Enums ajudam a especificar quais valores uma variável pode conter. Eles também ajudam a especificar quais valores um argumento de função pode assumir. Isso ajuda a garantir que os desenvolvedores sempre forneçam valores esperados para variáveis e argumentos de funções. Isso ajudará a eliminar bugs e a escrever um código mais seguro e robusto.
Pré-requisitos para trabalhar com enums
Neste tutorial, demonstrarei como trabalhar com enums em TypeScript. Para acompanhar este tutorial, você precisa ser capaz de executar e executar código TypeScript.
Portanto, você precisa ter NodeJs instalados para executar seu código JavaScript. Caso você não tenha o TypeScript instalado, o vídeo abaixo é um guia de como fazer isso.
Alternativamente, se você quiser compilar e executar um script imediatamente, use ts-node. Embora seja isso que farei neste artigo, para projetos maiores, recomendo instalar o TypeScript. Para executar um script usando ts-node, use o seguinte comando:
npx ts-node <scriptname>
Este artigo também pressupõe que você esteja familiarizado com JavaScript e TypeScript básico.
Trabalhando com um Enum Simples
Como criar um Enum simples
Enums em TypeScript são criados usando a palavra-chave enum. Segue o nome do enum e, em seguida, uma lista de membros que o enum contém. Aqui está um exemplo onde declaramos uma enumeração para os quatro pontos cardeais da bússola.
enum Direction { North, East, South, West }
Observe que não há aspas entre os membros do enum – eles não são strings.
Como usar um Enum Simples
Você atribui um valor enumerado a uma variável da seguinte maneira:
const heading: Direction = Direction.North;
Como estamos atribuindo a variável na declaração, o TypeScript pode inferir o tipo de dados. Como resultado, não precisamos afirmar o tipo. Em vez disso, podemos escrever isto:
const heading = Direction.North;
Para descobrir qual valor a variável de título tem, podemos console.log.
console.log(heading);
O resultado disso será:
0
A variável de título contém o valor zero, embora tenhamos atribuído o valor Direction.North a ela. Isso ocorre porque cada membro recebe um valor numérico quando as enumerações são criadas. O primeiro membro recebe 0, o segundo 1 e assim por diante. Aqui está uma demonstração:
console.log(Direction.North, Direction.East, Direction.South, Direction.West)
Portanto, você pode verificar se a variável de título contém Norte afirmando que é igual a zero. Por exemplo:
// Asserting equality let isNorth = heading == 0; // Printing the result console.log(isNorth);
Conforme demonstrado anteriormente, Direction.North é igual a 0. Portanto, ao invés de verificar se o rumo é igual a zero, podemos verificar se é igual a Direction.North.
// Checking if direction is North isNorth = heading == Direction.North; // Printing the result console.log(isNorth);
Tudo isso é útil; é provável que seja assim que você usará os valores enumerados. No entanto, você pode fazer mais, como verá mais tarde. A próxima seção discutirá como você pode trabalhar com valores personalizados.
Trabalhando com valores personalizados
Quando você cria uma enumeração, o TypeScript atribui automaticamente valores numéricos aos membros começando do zero. No entanto, você pode querer que seus membros tenham valores personalizados em vez dos valores padrão; nesse caso, você pode atribuí-los. Igual a:
enum StarRating { VeryPoor = 1, Poor = 2, Average = 3, Good = 4, Excellent = 5 }
Como alternativa, você pode fazer o seguinte:
enum StarRating { VeryPoor = 1, Poor, Average, Good, Excellent }
Neste caso, será atribuído ao primeiro membro o valor 1. As escolhas subsequentes serão incrementadas automaticamente a partir da escolha anterior. Portanto, Ruim terá uma classificação de 2, uma média de 3 e assim por diante.
As escolhas em um enum nem sempre possuem valores numéricos, como você verá mais adiante. No entanto, aqueles com valores numéricos se comportarão como números normais.
console.log(typeof StarRating.Average);
Isso imprimirá “número”. Isso significa que você pode fazer todas as coisas numéricas, inclusive fazer comparações como:
console.log(StarRating.Excellent > StarRating.Average)
Isso imprimirá “verdadeiro”.
Usando Strings como Valores Personalizados
Conforme mencionado anteriormente, as opções de enum podem ter valores de string em vez de apenas números. Veja como você faria isso:
enum Choice { RedPill = "Know Everything" BluePill = "Know Nothing" }
Neste caso, as opções de enum se comportarão como as anteriores. No entanto, como os valores são strings, você pode realizar operações com strings, e não operações com números, como no exemplo anterior.
Enums heterogêneos
Você também pode misturar strings e valores numéricos. Isso é desencorajado e não muito útil, mas mesmo assim é possível.
enum Mixed { First = "String" Second = 2 }
Palavras Finais
Neste artigo, abordamos o que são enums no TypeScript. Também discutimos por que eles são importantes. Também cobrimos os diferentes tipos de valores que os membros da enum podem ter.
A seguir, confira nosso artigo sobre Tipo vs. Interface em TypeScript.