Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript-特定父级的扩展类数组_Typescript_Types - Fatal编程技术网

Typescript-特定父级的扩展类数组

Typescript-特定父级的扩展类数组,typescript,types,Typescript,Types,我有一个抽象类叫做Action: 我有几个扩展动作的类: 如何声明一个扩展了Action但不应该接受Action本身的类数组 使用返回抽象类而不是抽象类的构造函数签名。抽象类在类型系统中没有构造函数,因此它将无效,但继承抽象类的任何派生类都将有效 abstract class Action { ... } class Vote extends Action { ... } class Upload extends Action { ... } const actions: (new () =

我有一个抽象类叫做Action:

我有几个扩展动作的类:

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


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

abstract class Action { ... }

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

const actions: (new () => Action)[] = [
  Vote,    // OK (passes)
  Upload,  // OK (passes)
  File,    // OK (fails)
  Action   // Ok now (fails)
]

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

abstract class Action { ... }

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

const actions: (new () => Action)[] = [
  Vote,    // OK (passes)
  Upload,  // OK (passes)
  File,    // OK (fails)
  Action   // Ok now (fails)
]
const actions: (typeof Action)[] = [
  Vote,    // OK (passes)
  Upload,  // OK (passes)
  File,    // OK (fails)
  Action   // BAD (passes)
]
abstract class Action { ... }

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

const actions: (new () => Action)[] = [
  Vote,    // OK (passes)
  Upload,  // OK (passes)
  File,    // OK (fails)
  Action   // Ok now (fails)
]