src/content/docs/linter/rules/use-enum-initializers.mdx
import { Tabs, TabItem } from '@astrojs/starlight/components';
<Tabs> <TabItem label="TypeScript and TSX" icon="seti:typescript"> ## Summary - Rule available since: `v1.0.0` - Diagnostic Category: [`lint/style/useEnumInitializers`](/reference/diagnostics#diagnostic-category) - This rule isn't recommended, so you need to enable it. - This rule has a [**safe**](/linter/#safe-fixes) fix. - The default severity of this rule is [**warning**](/reference/diagnostics#warning). - Sources: - Same as [`@typescript-eslint/prefer-enum-initializers`](https://typescript-eslint.io/rules/prefer-enum-initializers){
"linter": {
"rules": {
"style": {
"useEnumInitializers": "error"
}
}
}
}
Require that each enum member value be explicitly initialized.
TypeScript enums are a practical way to organize semantically related constant values. Members of enums that don't have explicit values are by default given sequentially increasing numbers.
When the value of enum members are important, allowing implicit values for enum members can cause bugs if enum declarations are modified over time.
enum Version {
V1,
}
enum Status {
Open = 1,
Close,
}
enum Color {
Red = "Red",
Green = "Green",
Blue,
}
enum Status {
Open = 1,
Close = 2,
}
enum Color {
Red = "Red",
Green = "Green",
Blue = "Blue",
}
declare enum Weather {
Rainy,
Sunny,
}