我正在尝试实现一个在TypeScript 3.2中遵循以下接口的功能:
const s: string = chain(
() => 123,
(n: number) => "abc"
(s: string) => s
);
我可以通过声明多个函数来做到这一点:
function chain2<A, B>(a: () => A, b: (a: A) => B): B {
return b(a());
}
function chain3<A, B, C>(a: () => A, b: (a: A) => B, c: (b: B) => C): C {
return c(b(a()));
}
// and so on
但是,自release of Tuples in rest parameters and spread expressions起,我想知道是否有一种方法可以只使用一个函数声明。到目前为止,我一直在尝试其他方法,但都没有成功。