我正在尝试创建一个带有两个参数的函数,第一个是类引用,第二个是只有一个参数的函数,该参数是类引用的实例,输出是特定类型。我尝试了下面的代码,但打字稿向我显示了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
}
我不确定您为什么在这里需要上课。
这应该起作用: