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