工厂函数返回的对象的函数中缺少返回类型

时间:2019-12-11 08:33:21

标签: typescript eslint eslintrc typescript-eslint

当尝试在由函数返回的对象中定义函数返回类型时,使用@typescript-eslint遇到了来自ESLint的错误错误。 / em>。

例如,我们有一个函数返回一个具有以下函数的对象:

const createStuff = (): StuffReturn => {
    return {
        doStuff: () => { // here ESLint will throw a warning
            return;
        },
    };
};

现在,当我为此函数的返回类型定义接口StuffReturn时...

interface StuffReturn {
    doStuff: () => void;
}

...,然后在命令行上运行ESLint,出现以下错误:

13:18 warning  Missing return type on function  @typescript-eslint/explicit-function-return-type

也许我应该为此在GitHub上创建一个问题,但是我不确定这是否是一个错误,或者我从此行为中缺少更深层的含义。

1 个答案:

答案 0 :(得分:1)

您必须在eslintrc中允许键入函数表达式:

"rules": {
  "@typescript-eslint/explicit-function-return-type": ["error", {
    "allowTypedFunctionExpressions": true
  }],
}

这将允许在函数表达式的变量上进行类型注释,而不是像docs中所述直接在函数上进行注释。

  

注意:如果您使用的是typescript-eslint v2或更高版本,则默认情况下此选项为true