interface Maybe<A> {
// this works as expected
a: <B>(a: A, b: Maybe<B>) => Maybe<B>;
//# Maybe#chain :: Maybe a ~> (a -> Maybe b) -> Maybe b
// this does not
chain: <B>((a: A) => Maybe<B>) => Maybe<B>;
}
如何在两个&#34;级别上表达期望函数和共享类型变量的函数&#34;如片段所示?或者TypeScript的类型系统太弱而无法表达它?
答案 0 :(得分:0)
哦,我忘了说出一个论点。工作版(注意fn
):
chain: <B>(fn: (a: A) => Maybe<B>) => Maybe<B>;