Skip to content
← Back to rules

typescript/prefer-literal-enum-member Restriction

An auto-fix is available for this rule.

它的作用

显式的枚举值必须只使用字面量值(字符串、数字、布尔值等)。

为什么这不好?

TypeScript 允许枚举成员的值是许多不同类型的有效 JavaScript 表达式。 然而,由于枚举会创建自己的作用域,其中每个枚举成员都会成为该作用域中的一个变量,开发者往往会对最终得到的值感到惊讶。

示例

以下是此规则的错误代码示例:

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

配置

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

allowBitwiseExpressions

type: boolean

default: false

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

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "typescript/prefer-literal-enum-member": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "typescript/prefer-literal-enum-member": "error",
  },
});
bash
oxlint --deny typescript/prefer-literal-enum-member

版本

此规则在 v0.3.2 中添加。

参考资料