@typescript-eslint/explicit-function-return-type的allowHigherOrderFunctions配置疑问
关于@typescript-eslint/explicit-function-return-type规则的疑问解答
这是预期行为,核心原因在于allowHigherOrderFunctions选项的生效逻辑:
该选项仅允许**直接返回函数字面量(匿名函数/箭头函数)**的高阶函数跳过显式返回类型检测,而返回已定义的具名函数时,不会触发这个例外规则。
- 第一个示例中,
arrowHoc返回的是已经声明好的arrowFn1,并非直接返回函数字面量,所以规则要求必须为arrowHoc显式标注返回类型,因此检测失败。 - 第二个示例中,
arrowFn2直接返回了一个箭头函数字面量,完全符合allowHigherOrderFunctions的例外条件,所以检测通过。
如果想让第一个示例通过检测,有两种可行方式:
- 为
arrowHoc显式标注返回类型:
const arrowFn1 = (): void => { return; }; export const arrowHoc = (): (() => void) => arrowFn1;
- 调整写法,让
arrowHoc直接返回函数字面量(参考第二个示例的结构)。
内容的提问来源于stack exchange,提问作者bcaspar
相关产品推荐
相关产品推荐

