Menu
CoddyTech

Usando Enums Numéricos

Parte da seção Introdução ao TypeScript do Journey de JavaScript da Coddy. Lição 52 de 73.

Você pode usar um enum como anotação de tipo, assim como qualquer outro tipo do TypeScript. Quando você especifica um enum como tipo de parâmetro, o TypeScript garante que somente valores válidos do enum possam ser passados para essa função:

function processUser(role: UserRole): void {
  if (role === UserRole.Admin) {
    console.log("Full access granted");
  } else if (role === UserRole.Editor) {
    console.log("Edit access granted");
  } else {
    console.log("View access only");
  }
}

Essa abordagem oferece excelente segurança de tipos — o TypeScript detectará qualquer tentativa de passar valores inválidos, e seu editor de código oferecerá autocompletar para os membros de enumeração disponíveis. Você pode chamar essa função usando processUser(UserRole.Admin) ou até mesmo processUser(0), já que enums numéricos aceitam seus valores numéricos subjacentes.

challenge icon

Desafio

Fácil

Crie uma função chamada checkPermissions que recebe um parâmetro:

  • role do tipo UserRole (usando o enum da lição anterior)

A função deve:

  • Verificar o valor da role e imprimir mensagens diferentes com base na role
  • Se a role for UserRole.Admin, imprimir "Full access granted"
  • Se a role for UserRole.Editor, imprimir "Edit access granted"
  • Para qualquer outra role, imprimir "View access only"
  • Ter um tipo de retorno void

Você recebeu o seguinte do desafio anterior:

  • O enum UserRole com os membros Admin, Editor e Viewer
  • Variáveis: adminRole, editorRole e viewerRole

Crie uma variável chamada currentUser do tipo UserRole e atribua a ela UserRole.Editor.

Crie uma variável chamada guestUser do tipo UserRole e atribua a ela o valor numérico 2.

Imprima as seguintes saídas chamando sua função checkPermissions:

  • Chame checkPermissions com adminRole
  • Chame checkPermissions com currentUser
  • Chame checkPermissions com guestUser
  • Chame checkPermissions com UserRole.Admin
  • Chame checkPermissions com o valor numérico 0

Experimente você mesmo

// Fornecido do desafio anterior
enum UserRole {
    Admin,
    Editor,
    Viewer
}

const adminRole = UserRole.Admin;
const editorRole = UserRole.Editor;
const viewerRole = UserRole.Viewer;

// TODO: Escreva seu código aqui
// Crie a função checkPermissions
// Crie a variável currentUser
// Crie a variável guestUser
// Chame checkPermissions com os parâmetros necessários
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Introdução ao TypeScript

Pratique por conta própria: Playground de TypeScript