打字稿类推断

时间:2019-09-20 22:06:57

标签: typescript type-inference

有人知道如何在抽象通用类中获取当前类吗?如何引用当前类(例如“ 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是我要寻找的问题

1 个答案:

答案 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

play