Um momento
Aula 09
Cursos / Aprenda TypeScript - Tutorial Básico Vindo do JavaScript
Como Definir um Tipo enum no TypeScript

Summary

Resumo sobre o Tipo Enum na Programação

Introdução

Na aula, é ensinado sobre o tipo chamado enum, que é uma enumeração muito útil em linguagens como Java e TypeScript. Esse tipo permite que você use nomes em vez de números inteiros, facilitando a compreensão do código.

Aplicação do Enum

Um exemplo prático apresentado é a direção em um jogo 2D. As direções possíveis (norte, leste, sul e oeste) podem ser representadas por números inteiros:

  • Norte: 0
  • Leste: 1
  • Sul: 2
  • Oeste: 3

Criação da Enumeração

Para criar uma enumeração em TypeScript:

enum Direção {
    Norte,
    Leste,
    Sul,
    Oeste
}

Os elementos começam a contar a partir de zero.

Uso da Enumeração

Para armazenar uma direção, você pode declarar uma variável da seguinte forma:

let d: Direção = Direção.Leste; // d terá o valor 1

Cuidado com o JavaScript

É importante notar que enums não existem no JavaScript padrão. O compilador TypeScript gera um objeto com propriedades correspondentes aos valores numéricos.

Obtenção de Nomes a partir dos Valores

Você pode obter o nome da direção correspondente ao valor. Por exemplo, se você buscar o nome da direção que tem o valor 2, receberá "Sul".

Modificação da Enumeração

É possível alterar a numeração inicial ou definir valores arbitrários para os enums:

enum Direção {
    Norte = 1,
    Leste = 3,
    Sul = 5,
    Oeste = 8
}

Isso altera como os valores são atribuídos às direções.

Conclusão

Enums são uma ferramenta poderosa para melhorar a legibilidade do código, permitindo o uso de nomes descritivos em vez de números inteiros. A aula conclui com um convite para experimentar essas funcionalidades no TypeScript.

Video Transcript

Nesta aula vamos aprender sobre mais um tipo chamado INAM, uma enumeração. Se você vende linguagens como Java, isso é muito usado para você não ter que digitar, por exemplo, números inteiros. Em vez de falar números inteiros, a gente usa enumerações para poder entender o que cada número significa. Então, vamos começar por exemplo, se você tem um jogo assim de duas dimensões e você quer manter a direção, qual é a direção que o jogador está olhando? Será que o jogador está olhando para o norte? Será que o jogador está olhando para o sul, para o oeste ou para o leste? Então, a gente pode associar o número inteiro a cada um dessas direções. Por exemplo, o norte seria zero, o leste seria um, o sul seria dois e o oeste seria três, por exemplo. Então, no seu código, você não precisa quando você está comparando se o jogador está em posição, sei lá, se ele está no norte, seria comparar o número zero, né? A direção da posição seria zero para o norte, ou seria um para o leste, dois para o sul, três para o oeste, tá? Por exemplo. Então, se a gente tivesse esses caras, a gente não quer escrever esses números inteiros, seria melhor se a gente escrevesse assim, em vez de um número inteiro, a gente tivesse uma enumeração, por exemplo, direção norte, ou direção leste, tá? Dessa maneira, sim. Direção sul, ou direção oeste. Então, esse significaria, esse cara, na verdade, seria o número inteiro correspondente ao número três e direção sul ao número dois, direção leste ao número um, direção norte ao número zero, e sim por diante, dessa maneira, tá? Então, vamos aprender sobre o ename aqui. Para fazer o ename bem simples, um TypeScript fala ename, coloca a chave e o nome do seu ename. Vou chamar de direção, tá? Porque pode ser, né? Norte, leste, sul ou oeste. Aí você diz, abre a chave, tá? E põe as direções aqui. Primeiro vai ser a norte, depois vai ser leste, sul e oeste. E eu puse na ordem específica porque o primeiro elemento que, dessa lista aqui, será terá valor zero. O segundo terá valor zero mais um, que é um. E o terceiro terá valor dois. O quarto terá valor três, assim por diante, tá? Sempre começa contando do zero. Então, se eu falar direção, ponto norte, vai corresponder o que? A zero. Se eu falar direção, ponto leste, corresponde a um. Direção, ponto sul corresponde o quê? Dois. E o oeste? Três, tá? Então, é isso que a enumeração nos dá. E principalmente se você quiser fazer uma variável para manter a enumeração, é só dizer, por exemplo, let, falar D, variável nome D, dois pontos, o nome da enumeração, que é o novo tipo, né? Por exemplo, se eu quiser armazenar a direção leste, só fazer essa maneira aqui, direção leste é na verdade o quê? Em valor um, mas o D vai manter, vai checar o tipo para usar o inam em vez do número, né? Vamos dar o console logo, você vê. Vou dar o TSC aqui para compilar. Vamos dar um olhado no arquivo que foi gerado. O senote que não temos inam no JavaScript normal. Por isso que apareceram essas coisas aqui diferentes, tá? E ele criou uma variável chamada direção e ele chamou um F aqui, o if, a função foi chamada na mesma hora, passou a variável, tá? E nesse caso está indefinido, então definiu como um objeto e nesse objeto aqui ele definiu as propriedades aqui, tá? Do 01, 02, 03, com uma string, assim por diante, se você quiser dar olhado. E aqui direção ponto leste no D e o do console logo no D, tá? Vamos ver no que dá, se eu rodar isso. Node, SRC, barra, inamos, ponto JSC. Opa, desculpa, não SRC, porque SRC tem os arquivos de TypeScript. Você tem que usar disso, se não rodar TypeScript, não dá certo. Então deu um aqui, tá? Que na verdade o 01 corresponde à direção leste. Agora seria legal se a gente obtesse o nome da direção através do valor, tem também isso, às vezes a gente quer ao contrário. Por exemplo, se eu dizer o nome, nome da direção, nome D, por exemplo, eu quero que esse cara seja o quê? Uma string, por exemplo, se eu quiser o nome da direção, da direção que tem valor 2, a direção que tem valor 2 é a direção sul. Então ele vai pegar o enum e vai olhar qual é o nome do enum que tem valor 2. Ele vai ver que é a sul e vai te retornar a sul com uma string e você pode dar o console logo aqui e pode ver quando rodar depois de compilar. TSC, Node, inamos, ponto JSC, que ele mostra sul, tá? É bem conveniente. Você também pode modificar a numeração desses inamos, em vez de começar do 0, começar do 1, por exemplo, para poder fazer isso, você vai aqui na definição do inam e no primeiro elemento você põe número igual a 1, tá? Então ele vai seguir o last vai ser 2, sul vai ser 3 e oeste vai ser 4. Quando a gente fizer isso e rodar aqui, você vê que a direção last mudou para valor 2. Ah, desculpa. O last é 2 agora e esse 2 aqui é a direção last, certo, tá certo, tá? Tá? Não confundo aqui porque eu tinha antes a direção last com a direção 2 que era o sul, então por isso que não tem o mesmo aqui anteriormente. Você também pode definir valores arbitrários para cada um desses inamos. É só adicionar, por exemplo, se o last você quiser ser 3, só adicionar o igual a 3, sul se quiser ser 5 e oeste vai ser 8, só adicionar aqui que eles vão ter valores arbitrários em vez de ser em ordem, tá? Só botar o igual depois do nome do inam. Então se eu fizer isso, o que vai dar aqui? Se eu compilar, esqueci de compilar, tsc, node. Então o primeiro é o variável D, direção last que agora tem valor 3, correto. Agora o segundo foi direção cujo valor é 2, não existe mais, por isso é underfine. Não tem mais 2, só tem 1, que é o node, 3 que é o last, 5 que é o sul e 8 que é o oeste. Tá? Então esse é o inam, a enumeração. Pra sala é só e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: