【问题标题】:missing return type in function of object returned by a factory function工厂函数返回的对象的函数中缺少返回类型
【发布时间】:2020-04-04 11:45:16
【问题描述】:

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

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

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 上为此创建一个问题,但我不确定这是否真的是一个错误,或者我错过了这种行为的一些更深层次的含义。

【问题讨论】:

标签: typescript eslint eslintrc typescript-eslint


【解决方案1】:

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

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

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

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

【讨论】:

  • 您好,感谢您的建议,不幸的是,这并没有什么不同。我仍然得到同样的错误。我尝试独立于外部接口键入doStuff 函数并在接口中使用它,我还尝试键入整个函数createStuff,包括它的返回值。但没有任何效果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 2016-10-24
  • 1970-01-01
  • 2019-05-14
  • 2018-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多