ESLint prefer-arrow-callback错误

时间:2016-07-06 10:26:08

标签: javascript ecmascript-6 eslint

我的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

如何解决此错误?

2 个答案:

答案 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显示。

要解决错误,您可以

  1. 使用Arrow function语法(如上所示)
  2. 使用options和命名函数

    来抑制错误
    /*eslint prefer-arrow-callback: ["error", { "allowNamedFunctions": true }]*/
    
    foo(function bar() {});
    

答案 1 :(得分:0)

解决“意外函数表达式。(prefer-allow-callback)”错误在eslint中编写代码开头的代码:

/*eslint prefer-arrow-callback: 0*/