JS.TS.NO.DUPLICATE.ENUM.VALUES

Disallow duplicate enum member values

Although TypeScript supports duplicate enum member values, people usually expect members to have unique values within the same enum. Duplicate values can lead to bugs that are hard to track down.

Rule Details

This rule disallows defining an enum with multiple members initialized to the same value. Now it only enforces on enum members initialized with String or Number literals. Members without initializer or initialized with an expression are not checked by this rule.

<!--tabs-->

Incorrect

Copy
enum E {
  A = 0,
  B = 0,
}
Copy
enum E {
  A = 'A'
  B = 'A'
}

Correct

Copy
enum E {
  A = 0,
  B = 1,
}
Copy
enum E {
  A = 'A'
  B = 'B'
}

Options

Copy
// .eslintrc.json
{
  "rules": {
    "@typescript-eslint/no-duplicate-enum-values": "warn"
  }
}

This rule is not configurable.

The content on this page is adapted from the ESLint User Guide. Copyright © OpenJS Foundation and other contributors, www.openjsf.org. All rights reserved. https://eslint.org/docs/rules/