Skip to main content

Enums

Enums are one of the few features TypeScript has which is not a type-level extension of JavaScript. Enums allow a developer to define a set of named constants. Using enums can make it easier to document intent, or create a set of distinct cases. TypeScript provides both numeric and string-based enums.

Numeric enums​

enum Direction {
Up = 1,
Down,
Left,
Right,
}

Above, we have a numeric enum where Up is initialized with 1. All of the following members are auto-incremented from that point on. By default enums start numbering their members starting at 0.

String enums​

In a string enum, each member has to be constant-initialized with a string literal, or with another string enum member:

enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}

Downsides of Enums​

There is some discussion about whether you should ever use enums in the first place, because they have some weird runtime behavior.

See the following videos for reference: