Skip to content
← Back to rules

eslint/no-bitwise 限制

它做了什么

禁止使用按位运算符

为什么这是不好的?

在 JavaScript 中使用按位运算符的情况非常罕见,而 &| 很可能只是误打了 &&||,这将导致意外的行为。

示例

此规则的 错误 代码示例:

javascript
var x = y | z;
javascript
var x = y ^ z;
javascript
var x = y >> z;

此规则的 正确 代码示例:

javascript
var x = y || z;
javascript
var x = y && z;
javascript
var x = y > z;

配置

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

allow

type: string[]

default: []

allow 选项允许指定的一组按位运算符作为例外,不受此规则限制。

例如 { "allow": ["~"] } 将允许无限制地使用按位运算符 ~。如以下示例所示:

javascript
~[1, 2, 3].indexOf(1) === -1;

int32Hint

type: boolean

default: false

当设置为 true 时,int32Hint 选项允许在 |0 模式中使用按位或进行类型转换。

例如,当配置为 { "int32Hint": true } 时,以下代码是被允许的:

javascript
const b = a | 0;

如何使用

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

json
{
  "rules": {
    "no-bitwise": "error"
  }
}
bash
oxlint --deny no-bitwise

参考资料