Utiliser les énumérations numériques
Fait partie de la section Introduction à TypeScript du Journey JavaScript de Coddy. Leçon 52 sur 73.
Vous pouvez utiliser une énumération comme annotation de type, tout comme n'importe quel autre type TypeScript. Lorsque vous spécifiez une énumération comme type de paramètre, TypeScript s'assure que seules des valeurs d'énumération valides peuvent être transmises à cette fonction :
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");
}
}Cette approche offre une excellente sécurité de type - TypeScript détectera toute tentative de passage de valeurs invalides, et votre éditeur de code proposera l'autocomplétion pour les membres de l'énumération disponibles. Vous pouvez appeler cette fonction en utilisant processUser(UserRole.Admin) ou même processUser(0), puisque les énumérations numériques acceptent leurs valeurs numériques sous-jacentes.
Défi
FacileCréez une fonction nommée checkPermissions qui prend un paramètre :
rolede typeUserRole(en utilisant l'énumération de la leçon précédente)
La fonction doit :
- Vérifier la valeur du rôle et afficher différents messages en fonction du rôle
- Si le rôle est
UserRole.Admin, afficher"Full access granted" - Si le rôle est
UserRole.Editor, afficher"Edit access granted" - Pour tout autre rôle, afficher
"View access only" - Avoir un type de retour
void
Les éléments suivants du défi précédent vous sont fournis :
- L'énumération
UserRoleavec les membresAdmin,Editor, etViewer - Les variables :
adminRole,editorRole, etviewerRole
Créez une variable nommée currentUser de type UserRole et assignez-lui UserRole.Editor.
Créez une variable nommée guestUser de type UserRole et assignez-lui la valeur numérique 2.
Affichez les sorties suivantes en appelant votre fonction checkPermissions :
- Appelez
checkPermissionsavecadminRole - Appelez
checkPermissionsaveccurrentUser - Appelez
checkPermissionsavecguestUser - Appelez
checkPermissionsavecUserRole.Admin - Appelez
checkPermissionsavec la valeur numérique0
Essayez vous-même
// Fourni lors du défi précédent
enum UserRole {
Admin,
Editor,
Viewer
}
const adminRole = UserRole.Admin;
const editorRole = UserRole.Editor;
const viewerRole = UserRole.Viewer;
// À FAIRE : Écrivez votre code ici
// Créer la fonction checkPermissions
// Créer la variable currentUser
// Créer la variable guestUser
// Appeler checkPermissions avec les paramètres requisCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Introduction à TypeScript
1Premiers pas avec TS
Qu'est-ce que TypeScript ?Pourquoi utiliser TypeScript ?Votre premier code TypeScriptProcessus de compilation et erreursRécapitulatif : Introduction à TS4Travailler avec les fonctions
Typage des paramètres et valeurs de retourTypage des fonctions fléchéesLe type de retour 'void'Paramètres optionnels avec '?'Valeurs par défaut des paramètresTypage des paramètres RestDéfinir des types de fonctionsRécapitulatif : Créer des fonctions typées2Types fondamentaux
Types de base : str, num, booleanLe type 'any' : la porte de sortieLe type 'unknown'Travailler avec 'null' et 'undef'L'inférence de type en actionAnnotations de type explicitesRécapitulatif : Pratique des types fondamentaux5Types : Alias, Unions & Intersections
Alias de types pour les primitifsTypes d'union ('|')Travailler avec les types d'unionTypes littérauxTypes d'intersection ('&')Combiner des alias de typesRécapitulatif : Combinaisons de types avancées8Énumérations
Qu'est-ce qu'une énumération numérique ?Utiliser les énumérations numériquesQu'est-ce qu'une énumération de chaînes ?Utiliser les énumérations de chaînesÉnumérations hétérogènesRécapitulatif : Utiliser les énumérations3Structure de données : Tableaux et Tuples
Tableaux typésModificateur 'readonly' pour les tableauxQu'est-ce qu'un tuple ?Déclaration et accès aux tuplesDéstructuration de tuplesTuples readonlyTableaux typés multidimensionnelsSpread operator avec les tableauxRécapitulatif : Tableaux et tuples6Typage des objets et interfaces
Annotations de type d'objet en ligneAlias de type pour les objetsIntroduction aux interfacesInterfaces vs Alias de typePropriétés optionnelles et ReadonlyÉtendre les interfaces et les typesAjout de méthodes aux interfacesRécapitulatif : Définir la structure des objetsEntraînez-vous par vous-même : Playground TypeScript