【发布时间】:2018-10-06 11:02:48
【问题描述】:
假设我有以下可折叠界面:
export interface Foldable<F> {
reduce: <A>(fn: (b: A, a: A) => A, initial: A, foldable: F) => A;
}
然后我想为数组实现它:
export const getArrayFold = <A>(): Foldable<Array<A>> => {
return {
reduce: (fn, initial, array) => {
return array.reduce(fn, initial);
}
};
};
但编译器抱怨:
类型“(b:A,a:A)=> A”的参数不能分配给参数 类型'(previousValue:A,currentValue:A,currentIndex:数字,数组: A[]) => A'。参数“a”和“currentValue”的类型是 不相容。 类型“A”不可分配给类型“A”。存在同名的两种不同类型,但它们不相关。
我不明白这里有两种不同类型的A。
【问题讨论】:
标签: typescript