no-enum
Disallow TypeScript enum; use string-literal unions or as const objects instead.
Why
Literal unions keep type-only domains explicit, while constant objects make runtime values deliberate. This policy also avoids compiler-dependent const-enum inlining contracts.
Fix
Use a literal union or an as const object after checking runtime member access, numeric reverse mappings, serialized values, and public consumers.
Examples
// ordinary headerconst marker = "auto-generated file";enum Mode { Start,}console.log(Mode.Start, marker);// auto-generated fileconst marker = "auto-generated file";enum Mode { Start,}console.log(Mode.Start, marker);enum Status { Active, Inactive,}type Status = "active" | "inactive";