【发布时间】:2019-03-13 03:52:09
【问题描述】:
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 函数是高阶函数,打字稿似乎无法推断出泛型类型P。
如何使generate 能够接受泛型类型函数作为参数?
【问题讨论】:
-
我在 Typescript 3.4 rc 中发现了这个博客中称为“传播的泛型类型参数”的新功能:devblogs.microsoft.com/typescript/announcing-typescript-3-4-rc。这正是我想要的!
标签: typescript generics