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';