有人知道如何在抽象通用类中获取当前类吗?如何引用当前类(例如“ CurrentClass”类型)而不仅仅是抽象类?
原因:我正在编写一个小型库,该库应该“推断”当前类,而无需执行“ as CurrentClass”
abstract class Super {
public static create(args: keyof CurrentClass) {}
}
class CurrentClass extends Super {}
// to prevent
CurrentClass.create({} as CurrentClass);
我到处搜索,但是找不到答案,所以打字稿甚至有可能吗?
this question可以解决这个问题,但不能解决静态功能
更新:看来this是我要寻找的问题
答案 0 :(得分:0)
通常的解决方法是添加一个类型参数以从调用中推断目标:
abstract class Super {
s = ""
public static create<T>(this:new (...a: any[]) => T, args: keyof T) {}
}
class CurrentClass extends Super {
c = ""
}
// to prevent
CurrentClass.create("c"); // ok
CurrentClass.create("s"); // ok