# no-confusing-arrow
禁止可能与比较混淆的箭头函数
一些该规则报告的问题可以通过 --fix 命令行选项 自动修复
箭头函数 (=>
) 在语法上类似于一些比较运算符(>
、<
、<=
和 >=
)。此规则警告不要在可能与比较运算符混淆的地方使用箭头函数语法。
这是一个示例,其中 =>
的用法可能会令人困惑:
// The intent is not clear
var x = a => 1 ? 2 : 3;
// Did the author mean this
var x = function (a) {
return 1 ? 2 : 3;
};
// Or this
var x = a <= 1 ? 2 : 3;
# 规则详情
此规则的错误代码示例:
/*eslint no-confusing-arrow: "error"*/
/*eslint-env es6*/
var x = a => 1 ? 2 : 3;
var x = (a) => 1 ? 2 : 3;
此规则的正确代码示例:
/*eslint no-confusing-arrow: "error"*/
/*eslint-env es6*/
var x = a => (1 ? 2 : 3);
var x = (a) => (1 ? 2 : 3);
var x = (a) => {
return 1 ? 2 : 3;
};
var x = a => { return 1 ? 2 : 3; };
# 选项
此规则接受两个具有以下默认值的选项参数:
{
"rules": {
"no-confusing-arrow": [
"error",
{ "allowParens": true, "onlyOneSimpleParam": false }
]
}
}
allowParens
是一个布尔设置,可以是 true
(默认)或 false
:
此规则使用 {"allowParens": false}
选项的错误代码示例:
/*eslint no-confusing-arrow: ["error", {"allowParens": false}]*/
/*eslint-env es6*/
var x = a => (1 ? 2 : 3);
var x = (a) => (1 ? 2 : 3);
onlyOneSimpleParam
是一个布尔设置,可以是 true
或 false
(默认):
此规则使用 {"onlyOneSimpleParam": true}
选项的正确代码示例:
/*eslint no-confusing-arrow: ["error", {"onlyOneSimpleParam": true}]*/
/*eslint-env es6*/
() => 1 ? 2 : 3;
(a, b) => 1 ? 2 : 3;
(a = b) => 1 ? 2 : 3;
({ a }) => 1 ? 2 : 3;
([a]) => 1 ? 2 : 3;
(...a) => 1 ? 2 : 3;