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