用于简单函数组合的 TypeScript 类型推断

TypeScript Type Inference For Simple Function Combination

对于我认为应该相对简单的内容,我遇到了困难。在尝试对几个函数进行简单组合时,我无法获得类型。有没有办法告诉 TS 找出类型推断而不必显式输入一些东西?

import { pipe, map } from 'ramda'

type TODO = unkown

export const mapP = (xf: TODO) => (data: TODO) =>
  pipe(
    map(xf),
    x => Promise.all(x),
  )(data)

我真的只想让 map 指定函数的类型,而不必重新键入它们。提前致谢!

import { pipe, map } from 'ramda'

export const mapP = <T,R>(xf: (value:T) => Promise<R>|R) => (data: T[]): Promise<R[]> =>
  pipe(
    map(xf),
    x => Promise.all(x),
  )(data)

这需要任何解释吗?