Skip to content
← Back to rules

typescript/prefer-literal-enum-member 限制

它的作用

显式枚举值必须仅为字面量值(字符串、数字、布尔值等)。

为什么这是不好的?

TypeScript 允许枚举成员的值为多种不同的有效 JavaScript 表达式。 然而,由于枚举创建了独立的作用域,其中每个枚举成员都成为该作用域中的一个变量,因此开发者常常对结果值感到意外。

示例

此规则的错误代码示例:

ts
const imOutside = 2;
const b = 2;
enum Foo {
  outer = imOutside,
  a = 1,
  b = a,
  c = b,
}

配置

此规则接受一个包含以下属性的配置对象:

allowBitwiseExpressions

type: boolean

默认值: false

当设置为 true 时,允许在枚举成员初始化器中使用位运算表达式。 这包括按位非(~)、按位与(&)、按位或(|)、按位异或(^)以及移位运算符(<<, >>, >>>)。

如何使用

要通过配置文件或 CLI 启用此规则,可以使用:

json
{
  "rules": {
    "typescript/prefer-literal-enum-member": "error"
  }
}
bash
oxlint --deny typescript/prefer-literal-enum-member

参考资料