我的ESLint有问题
这是我的功能:
$productItem.filter(function (i, el) {
return el.getBoundingClientRect().top < evt.clientY
}).last()
.after($productItemFull)
以下是ESLint告诉我的事情:
warning Missing function expression name func-names
error Unexpected function expression prefer-arrow-callback
如何解决此错误?
答案 0 :(得分:5)
基本上是在filter
回调函数中使用Arrow function语法。
$productItem.filter((i, el) => el.getBoundingClientRect().top < evt.clientY)
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.last()
.after($productItemFull);
这是ESLINT documentation for prefer-arrow-callback
所说的
箭头功能适用于回调,因为:
箭头函数中的
this
个关键字绑定到较高的范围。箭头功能的表示法比功能表达式的短。
并且,在以下情况下将抛出错误
/*eslint prefer-arrow-callback: "error"*/ foo(function(a) { return a; }); foo(function() { return this.a; }.bind(this));
您的代码与第一个代码段相同。因此,错误prefer-arrow-callback
由ESLint显示。
要解决错误,您可以
使用options和命名函数
来抑制错误/*eslint prefer-arrow-callback: ["error", { "allowNamedFunctions": true }]*/
foo(function bar() {});
答案 1 :(得分:0)
解决“意外函数表达式。(prefer-allow-callback)”错误在eslint中编写代码开头的代码:
/*eslint prefer-arrow-callback: 0*/