sort-enums
Enforce sorted TypeScript enum members.
Keeping enum members in a consistent and predictable order improves readability and maintainability.
Config
ts
pluginRules: {
sort-enums: [warn, { type: alphabetical, order: asc, ignoreCase: true }],
}Options:
type: alphabetical | natural | line-length | custom | unsorted (default: alphabetical)order: asc | desc (default: asc)ignoreCase: boolean (default: true)specialCharacters: keep | trim | remove (default: keep)alphabet: string (default: ) — only when type=custompartitionByNewLine: boolean (default: false)sortByValue: boolean (default: false) — sort by enum values (names by default)forceNumericSort: boolean (default: false) — numeric enums sorted numerically regardless of type/order
Note: This is a heuristic rule; it does not parse full TypeScript syntax trees.
Example
Before:
ts
enum Priority {
Critical = Critical,
None = None,
Low = Low,
High = High,
Medium = Medium,
}After (alphabetical asc by name):
ts
enum Priority {
Critical = Critical,
High = High,
Low = Low,
Medium = Medium,
None = None,
}Best practices
- Use
naturalwhen enum member names include numeric suffixes - Enable
sortByValuewhen values matter more than names (e.g., localized strings) - Use
partitionByNewLine: trueto keep logical groups intact - Pair with code review expectations for enum organization (e.g., status enums grouped by lifecycle)