no-confusing-arrow
不允许箭头功能,他们可能会与比较混淆(无混淆箭头)
在命令行上的--fix
选项可以自动修复一些被这条规则反映的问题。
箭头函数(=>)是在语法一些比较运算符(类似>,<,<=,和>=)。此规则警告不要在可能与比较运算符混淆的地方使用箭头函数语法。即使箭头函数的参数用 parens 包裹,此规则仍会警告它,除非allowParens设置为true。
以下是=>的使用示例可能会令人困惑:
// 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;
var x = (a) => (1 ? 2 : 3
此规则的正确
代码示例:
/*eslint no-confusing-arrow: "error"*/
/*eslint-env es6*/
var x = a => { return 1 ? 2 : 3; };
var x = (a) => { return 1 ? 2 : 3; };
选项
此规则接受具有以下默认值的单个选项参数:
{
"rules": {
"no-confusing-arrow": ["error", {"allowParens": false}]
}
}
allowParens
是可以是true
或false
的一个布尔设置:
1. true
放松规则并接受括号作为有效的“混淆预防”语法。
2. false
即使表达式包含在括号中也会警告
此规则的正确
代码示例包含以下{"allowParens": true}
选项:
/*eslint no-confusing-arrow: ["error", {"allowParens": true}]*/
/*eslint-env es6*/
var x = a => (1 ? 2 : 3
var x = (a) => (1 ? 2 : 3
相关规则
- 无定条件
- 箭头 - 双亲
版本
此规则是在 ESLint 2.0.0-alpha-2中引入的。