Typescript 如何动态实例化特定泛型类型的类
在下面的示例中,我希望创建的对象的类型是Typescript 如何动态实例化特定泛型类型的类,typescript,typescript-generics,Typescript,Typescript Generics,在下面的示例中,我希望创建的对象的类型是SpecificSomething,但结果是基本类型,SpecificSomething class Something我现在没有时间给你写一个答案,但是当泛型引用参数并且你从参数映射到返回值时,你通常会得到更好的推断,而不是相反。沿着这些线的东西函数createSomething(ctor:C):InstanceType嗯,嗯。。。但是InstanceType将是SpecificSomething而不是SpecificSomething。如果在TypeS
SpecificSomething
,但结果是基本类型,SpecificSomething
class Something我现在没有时间给你写一个答案,但是当泛型引用参数并且你从参数映射到返回值时,你通常会得到更好的推断,而不是相反。沿着这些线的东西函数createSomething(ctor:C):InstanceType
嗯,嗯。。。但是InstanceType
将是SpecificSomething
而不是SpecificSomething
。如果在TypeScript(如中)中没有对高级类型的本机支持,那么尝试这样做是很困难的。@LindaPaiste这确实有效,请随意将其作为答案发布,我将删除我的答案。我希望看到任何以SpecificSomething
而不是Something
或SpecificSomething
结尾的解决方案。我一点运气都没有。@jcalz你是对的,我确实需要正确的类型,我误读了的输出,当我说它确实有效时。。。你是对的,我需要的是更高级的类型,而在这方面做实际工作的人确实指出了这个问题
class Something<A> {}
class SpecificSomething<A> extends Something<A> {}
function createSomething<W extends Something<Error>>(ctor: { new(): W }): W {
return new ctor;
}
const a = createSomething(SpecificSomething);