TypeScript中的“高阶”泛型

时间:2017-03-18 05:41:33

标签: typescript

我不确定标签,但我记得这一点(它的语义为Haskell的bimap):

bimap<A, B, C, D, Bif extends Bifunctor>(mapFnA: (a: A) => B, mapFnB: (c: C) => D, input: Bif<A, C>): Bif<B, D>;

TSC抱怨Bif没有参数,所以我添加了它们:

bimap<A, B, C, D, Bif<any, any> extends Bifunctor<any, any>>(mapFnA: (a: A) => B, mapFnB: (c: C) => D, input: Bif<A, C>): Bif<B, D>;

但现在它完全崩溃了(比如七百多行错误)。

问题:我想实现的想法是否可能(如果是这样的话?),或者TypeScript的类型系统是否仅限于表达这一点?

0 个答案:

没有答案