TypeScript泛型在进行咖喱处理时不适用于上一个函数,]?>

问题描述 投票:4回答:1

我有一个处理承诺的map的咖喱版本。它需要两个参数,一次一个。它需要两个类型参数,以使调用者提供无法推断的片段。但是,实际上,调用者总是必须提供它们,因为在传递的转换函数中不会推断类型。该函数看起来像这样:

/**
 * @description
 *   Like `ramda.map`, but handles an iterator that returns a promise (or not).
 *
 * @example
 *   await mapP((x: number) => Promise.resolve(x + 1))([1, 2, 3]) // -> [2, 3, 4]
 */
export const mapP = <T, R>(xf: (value: T) => Promise<R> | R) => (
  data: T[],
): Promise<R[]> => pipe(when(isNil, always([])), map(xf), allP)(data)

这里是我叫它,您可以看到类型系统不知道x

我该如何修正编写函数的方式以使类型起作用(不放弃使用,我知道如果不使用它,我会知道的)?

我有一个处理承诺的地图的咖喱版本。它需要两个参数,一次一个。它需要两个类型参数,以使调用者提供无法推断的片段。但是,实际上...

typescript functional-programming currying
1个回答
0
投票

我将使用以下声明:

© www.soinside.com 2019 - 2024. All rights reserved.