嵌套函数中接口中的泛型

时间:2016-11-08 17:04:30

标签: typescript

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的类型系统太弱而无法表达它?

1 个答案:

答案 0 :(得分:0)

哦,我忘了说出一个论点。工作版(注意fn):

  chain: <B>(fn: (a: A) => Maybe<B>) => Maybe<B>;