打字稿-特定父级的扩展类数组

时间:2019-08-16 08:40:55

标签: typescript types

我有一个名为Action的抽象类:

abstract class Action { ... }

我有几个扩展Action的类:

class Vote extends Action { ... }
class Upload extends Action { ... }
...

我如何声明一个扩展Action的类数组(但不应该接受Action本身?

const actions: (typeof Action)[] = [
  Vote,    // OK (passes)
  Upload,  // OK (passes)
  File,    // OK (fails)
  Action   // BAD (passes)
]

1 个答案:

答案 0 :(得分:5)

使用构造函数签名来返回抽象类而不是抽象类。抽象类在类型系统中没有构造函数,因此它将是无效的,但是任何继承该抽象类的派生类都将是有效的。

g = sns.catplot(x="Category", y="R^2", col="Country", data=df, kind="box", aspect=.7)