我希望描述一个方法参数,它包含一个扩展超类的类。我是这样做的:
class SuperClass {
public superMethod() {}
}
class JustAnotherClass extends SuperClass {
constructor(){ super() }
}
class SomeClassCollection {
private myClasses : Array<any> = [];
public addClass<T extends SuperClass>(newClass : T){
this.myClasses.push(newClass);
}
}
let collection = new SomeClassCollection();
collection.addClass(JustAnotherClass)
但现在我收到以下错误: &#34; JustAnotherClass&#39;类型&#39;类型的争论不能分配给超级类型&#39;类型的参数。 物业&#39; superMethod&#39; JustAnotherClass类型&#39;类型中缺少&#39;。&#34;
有人可以解释一下我做错了吗?
答案 0 :(得分:0)
您想要传递类类型还是实例?
下面是两个案例的例子。
class SuperClass {
public superMethod() {}
}
class JustAnotherClass extends SuperClass {
constructor(){ super() }
}
class SomeClassCollection {
private myClasses : Array<any> = [];
public addClass<T extends SuperClass>(newClass : T){
this.myClasses.push(newClass);
}
public addClassType(newClass : typeof SuperClass){
this.myClasses.push(newClass);
}
}
let collection = new SomeClassCollection();
collection.addClass(new JustAnotherClass());
collection.addClassType(JustAnotherClass);