我如何通过打字稿中的泛型检测类实例

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

我正在尝试创建一个带有两个参数的函数,第一个是类引用,第二个是只有一个参数的函数,该参数是类引用的实例,输出是特定类型。我尝试了下面的代码,但打字稿向我显示了p的未知类型,即使我希望p是Pair的实例。

interface Point{
    x: number
    y: number
}
class Pair{
    key = 0
    value = 0
}
function set<Class extends { new (): Type }, Type>(
    inputClass: Class,
    constructor: (o: Type) => Point) {
    //implementation...
}
set(Pair, p => ({x: p.key, y: p.value}))
// Typescript says:
// (parameter) p: unknown
// Object is of type 'unknown'.(2571)

我希望打字稿知道p必须是Pair的实例


我能够使用Java泛型来实现,但是我仍然无法在打字稿中进行复制。请输入代码:

public <K extends Pair, T extends Class<K>> void setRenderer(T classe, Function<K, Point> constructor){
    //implementation
}
typescript class generics instance inference
1个回答
0
投票

我不确定您为什么在这里需要上课。


0
投票

这应该起作用:

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