2016-11-08 59 views
0
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>; 
} 

如何在代碼段中顯示函數期望函數和共享類型變量的「級別」?或者說,TypeScript的類型系統太弱,無法表達它?嵌套函數中的接口中的泛型

回答

0

哦,我忘了說出一個論點。工作版本(請注意fn):

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