我有一个返回另一个函数的函数。
我正在使用带有Typescript和eslint的CRA使用默认配置
@typescript-eslint/explicit-function-return-type
这个eslint规则告诉我,我需要描述第一个函数的执行结果。它看起来像中间件。
我不知道如何描述该类型
const fn = a => b => b(a)
答案 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