How can a enum member be aliased in TypeScript?

enums, javascript, typescript

Solution

You can use a seperate object or array for this (Playground):

enum RoleTypes {
    None,
    Admin,
    SuperAdmin
}

let RoleTypesDisplay: { [index: number]: string } = {};
RoleTypesDisplay[RoleTypes.None] = "None";
RoleTypesDisplay[RoleTypes.Admin] = "Administrator";
RoleTypesDisplay[RoleTypes.SuperAdmin] = "Super Administrator";

var roleName = RoleTypesDisplay[RoleTypes.SuperAdmin];
alert(roleName);

// because RoleTypes is a number based enum that starts with 0 this is equals to 
RoleTypesDisplay = ["None", "Administrator", "Super Administrator"];

var roleName = RoleTypesDisplay[RoleTypes.SuperAdmin];
alert(roleName);

Problem

I have a below `enum` in TypeScript: ``` enum RoleTypes { None, Admin, SuperAdmin } ``` When I run the following code: ``` var roleName = RoleTypes[RoleTypes.SuperAdmin]; ``` the value of the variable `roleName` is `SuperAdmin`. Is it possible to change it to a custom name `'Super Administrator'`, and how do I do this?

Original source

Related problems