Eslint
规则 | Rules

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是可以是truefalse的一个布尔设置:

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中引入的。

资源