如果我的函数返回另一个函数,如何检查“函数的返回类型丢失”?

时间:2019-07-03 06:39:10

标签: typescript

我有一个返回另一个函数的函数。 我正在使用带有Typescript和eslint的CRA使用默认配置 @typescript-eslint/explicit-function-return-type这个eslint规则告诉我,我需要描述第一个函数的执行结果。它看起来像中间件。 我不知道如何描述该类型

const fn = a => b => b(a)

1 个答案:

答案 0 :(得分:3)

这是一种输入方式:

type Fn = <A>(a: A) => (<B extends (a: A) => any>(b: B) => ReturnType<B>);
let fn: Fn = a => b => b(a);

const str = fn(1)(a => String(a)); // str is string
const num = fn('a')(a => Number(a)) // num is number
const num2 = fn(2)(a => a + 2) // num2 is number

playground