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.
Desafio
FácilCrie uma função chamada checkPermissions que recebe um parâmetro:
roledo tipoUserRole(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
UserRolecom os membrosAdmin,EditoreViewer - Variáveis:
adminRole,editorRoleeviewerRole
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
checkPermissionscomadminRole - Chame
checkPermissionscomcurrentUser - Chame
checkPermissionscomguestUser - Chame
checkPermissionscomUserRole.Admin - Chame
checkPermissionscom o valor numérico0
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áriosEsta 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
1Primeiros Passos com TS
O que é TypeScript?Por que usar TypeScript?Seu Primeiro Código TypeScriptProcesso de Compilação e ErrosRecapitulação: Introdução ao TS4Trabalhando com Funções
Tipagem de Parâmetros e RetornosTipagem de Arrow FunctionsO Tipo de Retorno 'void'Parâmetros Opcionais com '?'Valores Padrão de ParâmetrosTipagem de Rest ParametersDefinindo Tipos de FunçõesRecapitulação: Criando Funções Tipadas2Tipos Principais
Tipos Básicos: str, num, booleanO Tipo 'any': Válvula de EscapeO Tipo 'unknown'Trabalhando com 'null' e 'undef'Inferência de Tipo na PráticaAnotações de Tipo ExplícitasRecapitulação: Prática de Tipos Principais5Tipos: Aliases, Uniões e Interseções
Aliases de Tipos para PrimitivosTipos de União ('|')Trabalhando com Tipos de UniãoTipos LiteraisTipos de Interseção ('&')Combinando Aliases de TiposRecapitulação: Combinações Avançadas de Tipos3Estrutura de Dados: Arrays e Tuplas
Arrays TipadosModificador 'readonly' para ArraysO que é uma Tupla?Declarando e Acessando TuplasDesestruturando TuplasTuplas ReadonlyArrays Tipados MultidimensionaisSpread Operator com ArraysRecapitulação: Arrays e TuplasPratique por conta própria: Playground de TypeScript