gpt4 book ai didi

typescript - 使用 TypeScript 声明类类型(将类作为参数传递)

转载 作者:搜寻专家 更新时间:2023-10-30 21:22:42 25 4
gpt4 key购买 nike

所以我有一个接受不同构造函数的函数,像这样:

export class SomeSuperClass {
...
}

export class A extends SomeSuperClass {
...
}

export class B extends SomeSuperClass {
...
}


const foo = function(Clazz: SomeSuperClass){

const v = new Clazz();

}

foo(A); // pass the class itself
foo(B); // pass the class itself

问题是 SomeSuperClass 意味着 Clazz 将是 SomeSuperClass 的一个实例,而不是 SomeSuperClass 本身.

我试过像这样愚蠢的事情(显然行不通):

   const foo = function(Clazz: SomeSuperClass.constructor){

const v = new Clazz();

}

正确的做法是什么?

最佳答案

正如您所提到的,您正在寻找的是如何描述类构造函数而不是实例。可以通过以下方式实现:

const foo = function(ctor: new() => SomeSuperClass) {
...
}

或者(在本例中结果相同):

const foo = function(ctor: typeof SomeSuperClass) {
...
}

这也要求AB有无参数的构造函数

关于typescript - 使用 TypeScript 声明类类型(将类作为参数传递),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47484010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com