TypeScript - Enums

Numeric vs String Enums

enum DirectionNum { Up, Down, Left, Right }

enum DirectionStr { Up = 'UP', Down = 'DOWN', Left = 'LEFT', Right = 'RIGHT' }

const enum

const enum Flags { Read = 1 << 0, Write = 1 << 1 }
const f = Flags.Read | Flags.Write;

Note: const enums inline values at compile time. They require consistent compiler settings across packages; many teams prefer union literals instead:

type Direction = 'UP' | 'DOWN' | 'LEFT' | 'RIGHT';