如何为some(),filter()和forEach()禁用@ typescript-eslint / explicit-function-return-type?

时间:2019-07-05 17:43:33

标签: typescript eslint

如何为some()filter()forEach()禁用@typescript-eslint/explicit-function-return-type

每次为booleansome() filter()void声明forEach()的返回类型非常烦人。

无效

[2, 5, 8, 1, 4].some(elem => elem > 10)

有效

[2, 5, 8, 1, 4].some((elem):boolean => elem > 10)

我希望能够使用第一个模式(标记为“无效”)而不会从此规则中得到错误。

3 个答案:

答案 0 :(得分:1)

在您的.eslintrc文件中,您可以在rules下添加以下内容:

{
  ...
  "plugins": ["@typescript-eslint"],
  "rules": {
    ...
    "@typescript-eslint/explicit-function-return-type": {
      "allowExpressions": true
    }
  }
}

根据allowExpressions上的文档,这将允许您在不声明显式返回类型的情况下向任何函数提供内联回调。

答案 1 :(得分:1)

您必须在 .eslint 配置文件中将其设置为 "off"

{
  ...
  "rules": {
    ...
    "@typescript-eslint/explicit-function-return-type": "off"
  }
}

答案 2 :(得分:0)

这是应该为规则.eslintrc配置@typescript-eslint/explicit-function-return-type

的方式
{
  "@typescript-eslint/explicit-function-return-type": "off",
  "overrides": [
    {
      "files": ["*.ts", "*.tsx"],
      "parser": "@typescript-eslint/parser",
      ...
      "rules": {
        ...
        "@typescript-eslint/explicit-function-return-type": [
          "error",
          {
            "allowExpressions": true
          }
        ]
      }
    }
  ]
}

使用{allowExpressions:true}:此规则的正确代码示例:

node.addEventListener('click', () => {});

node.addEventListener('click', function() {});

const foo = arr.map(i => i * i);

更多信息,请参见allowExpressions的文档。