代码之家  ›  专栏  ›  技术社区  ›  Darren

意外的函数表达式。(首选箭头回调)

  •  1
  • Darren  · 技术社区  · 6 年前

    我收到以下代码中的三个错误 eslint ,而函数似乎按应用程序中的预期工作。

    错误:

    [eslint] Unexpected unnamed function. (func-names)
    [eslint] Unexpected function expression. (prefer-arrow-callback)
    [eslint] Do not access Object.prototype method 'hasOwnProperty' from target object. (no-prototype-builtins)
    

    代码:

    const getCount = campaignData.reduce(function(acc, curr) {
      if (!acc.hasOwnProperty(curr.status)) {
        acc[curr.status] = 1
      } else {
        acc[curr.status] += 1
      }
      return acc;    
    }, {});
    

    我正在使用 render 用于作为 {getCount.active} .

    因为它在工作,我应该忽略它吗?

    1 回复  |  直到 6 年前
        1
  •  7
  •   Jonas Wilms    6 年前

    这就是过梁的意思:

    [eslint]意外的未命名函数。(FUNC名称)

    为函数指定正确的名称会使错误堆栈更具可读性, error at accumulate 那么表现力更高吗? error at anonymous 因此,它建议您更改:

     function(acc, curr)
    

     function accumulate(acc, curr)
    

    或者,您可以遵循以下建议:

    [eslint]意外的函数表达式。(首选箭头回调)

    如果你不需要 this 在函数内部,您可以使用箭头函数语法,它稍微短一点。

     function(acc, curr) {
    

    变成

     (acc, curr) => {
    

    [eslint]不要从目标对象访问object.prototype方法“hasownproperty”。(无原型内置)

    继承的类可能会意外地覆盖它,因此它建议您使用:

     curr.status in acc
    

    但所有这些提示实际上只是对可读性的一些改进,没有功能上的区别。

    因为它在工作,我应该忽略它吗?

    如果您认为“代码是好的,如果它是工作的”,那么是的,否则不是。