Typescript Class 推理
Typescript Class inference
有谁知道如何在 abstract-generic-class 中获取当前 class |如何像类型 "CurrentClass" 一样引用当前 class 而不仅仅是抽象 class?
原因:我正在写一个小库,应该 "infer" 当前 class 而不是 "as CurrentClass"
abstract class Super {
public static create(args: keyof CurrentClass) {}
}
class CurrentClass extends Super {}
// to prevent
CurrentClass.create({} as CurrentClass);
我到处搜索,但找不到这个问题的答案,所以它甚至可以用打字稿吗?
会解决它,但不适用于静态函数
更新:this 似乎是我要找的问题
通常的解决方法是添加一个类型参数以从调用中推断目标:
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
有谁知道如何在 abstract-generic-class 中获取当前 class |如何像类型 "CurrentClass" 一样引用当前 class 而不仅仅是抽象 class?
原因:我正在写一个小库,应该 "infer" 当前 class 而不是 "as CurrentClass"
abstract class Super {
public static create(args: keyof CurrentClass) {}
}
class CurrentClass extends Super {}
// to prevent
CurrentClass.create({} as CurrentClass);
我到处搜索,但找不到这个问题的答案,所以它甚至可以用打字稿吗?
更新:this 似乎是我要找的问题
通常的解决方法是添加一个类型参数以从调用中推断目标:
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