TypeScript Number-based Enums Example

In the previous example, we have seen the TypeScript String Enums Example. This example shows how to create and use TypeScript number-based enums with examples.
Learn more about TypeScript at TypeScript Tutorial with Examples.
In TypeScript, enums are set of named constants. Though it is optional, enums should be a named group of related constants. 

TypeScript Number-based Enums

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.

2.1 Example: How to create number-based enums

In below example, we have not initialized the values, 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

2.2 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
}

2.3 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);
Note: Always use String-based enums because they are recommended an approach in comparison to traditional number-based enums. Always use string-based enums, until you have a very solid reason for choosing traditional number-based enums over this.
Learn more about TypeScript at TypeScript Tutorial with Examples.

Comments