带有泛型参数的typescript中的工厂

带有泛型参数的typescript中的工厂,typescript,generics,factory,Typescript,Generics,Factory,我试图在typescript中实现一个返回泛型类型的工厂。 我已经知道我需要将类型作为第一个参数传递,并将其类型设置为CTOR签名(new()=>T) 当我想将泛型类型传递给工厂时,问题就开始了-我收到一个错误,错误是: 类型为“typeof G”的值不可调用。您的意思是包括“新”吗?(2348) 有没有办法做到这一点 以下是问题的简化版本: //泛型类 类G{} //标准非通用 B类{} 函数make(t:new()=>t){ 返回新的t() } //工作 制造(B) //“typeof G”

我试图在typescript中实现一个返回泛型类型的工厂。
我已经知道我需要将类型作为第一个参数传递,并将其类型设置为CTOR签名(
new()=>T
) 当我想将泛型类型传递给工厂时,问题就开始了-我收到一个错误,错误是:
类型为“typeof G”的值不可调用。您的意思是包括“新”吗?(2348)

有没有办法做到这一点

以下是问题的简化版本:

//泛型类
类G{}
//标准非通用
B类{}
函数make(t:new()=>t){
返回新的t()
}
//工作
制造(B)
//“typeof G”类型的值不可调用。你的意思是包括“新的”吗?(2348)
制造(G)

您的问题是将泛型设置在错误的位置。在
make(value)
中,
value
应该是不带任何类型脚本定义的可运行代码。因此,调用
make(G)
是false,因为不能将TypeScript泛型作为参数调用

要定义泛型,需要在括号前写入:

make(G)
因此,这里,
G
是您给出的类型,
G
是“有效的”可运行代码

看一看这张照片