TypeScript Number Enums Examples

TypeScript enums are number based. This means that numbers can be assigned to an instance of the enum, and so can anything else that is compatible with a number.

TypeScript Number-based Enums Examples

Example: How to create number-based enums

In the below example, we have not initialized the values, the transpiler generates a lookup table with values assigned in array index fashion (starting with zero and then incrementing by one for each member).
enum Weekday {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

// Access enum member values
console.log(Weekday.Sunday);
console.log(Weekday['Sunday']);
console.log(Weekday[0]);
Output:
C:\user\typescript-tutorial> tsc .\enums.js
C:\user\typescript-tutorial> node .\enums.js
6
6
Monday

Access enum member values

As these are number based enums, you can use the format enum[index_number] as well, along with Enum.member or Enum['member'].
// Access enum member values
console.log(Weekday.Sunday);
console.log(Weekday['Sunday']);
console.log(Weekday[0]);
If you want to start with any other number, then assign it to the first enum member. All following members will get the value by incrementing one by one.
In below example, we start at 1 and start incrementing from there:
enum Weekday {
    Monday = 1,
    Tuesday ,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

Enum as a function argument

To pass enum in functions, declare the argument type of enum itself.
enum Weekday {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}


function test(weekday: Weekday){
    console.log(weekday);
}

test(Weekday.Sunday);
test(Weekday.Monday);

Reference


Comments