Skip to content
← Back to rules

eslint/no-sequences 限制

它的作用

禁止使用逗号运算符。

为什么这是个问题?

逗号运算符会从左到右依次计算其每个操作数,并返回最后一个操作数的值。然而,这常常掩盖了副作用,其使用通常是意外发生的。

选项

  • allowInParentheses(默认值:true):如果设置为 false,即使在括号中包裹的情况下也禁止使用逗号运算符。

示例

以下为 错误 的代码示例:

javascript
((foo = doSomething()), val);

(0, eval("doSomething();"));

// 箭头函数体需要双层括号
const fn = () => (doSomething(), val);

// 当 allowInParentheses: false 时
foo = (doSomething(), val);

以下为 正确 的代码示例:

javascript
foo = (doSomething(), val);

(0, eval)("doSomething();");

// 单层额外括号对条件已足够
do {} while ((doSomething(), !!test));

for (i = 0, j = 10; i < j; i++, j--) {}

// 箭头函数体需要双层括号
const fn = () => (doSomething(), val);

配置

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

allowInParentheses

type: boolean

default: true

如果此选项设置为 false,则即使表达式序列被显式地用括号包裹,该规则也会禁止使用逗号运算符。默认值为 true

如何使用

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

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

参考资料