Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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_Typescript Generics - Fatal编程技术网

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);