高阶函数中的打字稿泛型类型推断

问题描述 投票:1回答:1
function generate<P extends object>(init: (p: P) => void) {
  return function (p: P): P {
    init(p)
    return p
  }
}

const g = generate(function AAA<T>(p: T) {
  console.log(p)
})

const result = g({
  x: 1
})

result.x // TS2339: Property 'x' does not exist on type '{}'.

generate函数是一个更高阶函数,似乎typescript不能推导出泛型类型P

如何让generate能够接受泛型类型函数作为参数?

typescript generics
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.