带有泛型参数的typescript中的工厂
我试图在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”
我已经知道我需要将类型作为第一个参数传递,并将其类型设置为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
是“有效的”可运行代码
看一看这张照片