如何捕获抽象 class 泛型?
How can I capture an abstracts class generic type?
我开始认为这是不可能的。我有一个通用的抽象基 class,我希望跟踪 T
的类型。我发现实现这一点的唯一方法是在我的基础上有一个参数 class 并在超级构造函数中重新声明通用类型。
abstract class Base<T> {
genericType: any;
constructor(genType: any) {
this.genericType = genType;
}
}
class Concrete extends Base<String> {
constructor() {
super(String);
}
}
let obj = new Concrete();
document.write(obj.genericType);
我希望做的只是在我的基础上有一些类似的东西 class。
genericType: any = T;
当您调用 super(String)
时,您实际上传递了 String class.
的构造函数
你可以这样重写你的基础class:
abstract class Base<T> {
genericTypeConstructor: {new(): T};
constructor(genType: {new(): T}) {
this.genericTypeConstructor = genType;
}
}
我开始认为这是不可能的。我有一个通用的抽象基 class,我希望跟踪 T
的类型。我发现实现这一点的唯一方法是在我的基础上有一个参数 class 并在超级构造函数中重新声明通用类型。
abstract class Base<T> {
genericType: any;
constructor(genType: any) {
this.genericType = genType;
}
}
class Concrete extends Base<String> {
constructor() {
super(String);
}
}
let obj = new Concrete();
document.write(obj.genericType);
我希望做的只是在我的基础上有一些类似的东西 class。
genericType: any = T;
当您调用 super(String)
时,您实际上传递了 String class.
你可以这样重写你的基础class:
abstract class Base<T> {
genericTypeConstructor: {new(): T};
constructor(genType: {new(): T}) {
this.genericTypeConstructor = genType;
}
}