Skip to content
← Back to rules

eslint/no-sequences Restriction

它的作用

禁止使用逗号运算符。

为什么这不好?

逗号运算符会依次计算其每个操作数(从左到右),并返回最后一个操作数的值。不过,这常常会掩盖副作用,而且它的使用往往是无意的。

示例

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

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,则此规则会禁止逗号运算符,即使表达式序列被显式地用括号包裹起来也是如此。

如何使用

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

json
{
  "rules": {
    "no-sequences": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "no-sequences": "error",
  },
});
bash
oxlint --deny no-sequences

版本

此规则在 v1.33.0 中添加。

参考资料