Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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
Javascript 通过另一个实例的构造函数属性生成实例(TS2351:此表达式不可构造)_Javascript_Typescript_Constructor - Fatal编程技术网

Javascript 通过另一个实例的构造函数属性生成实例(TS2351:此表达式不可构造)

Javascript 通过另一个实例的构造函数属性生成实例(TS2351:此表达式不可构造),javascript,typescript,constructor,Javascript,Typescript,Constructor,我需要实例化一些我无权访问的类。我拥有的是该类的另一个实例。换句话说:库不导出类,只导出它的实例,我想要另一个实例。以下代码确实解决了此问题: const myInstance=newimportedInstance.constructor(参数); 它可以像纯javascript一样工作,但不能像typescript那样工作。Typescript抛出一个错误: TS2351:此表达式不可构造。类型“Function”没有构造签名 除了任何类型转换之外,还有其他类型脚本的解决方案吗,比如new

我需要实例化一些我无权访问的类。我拥有的是该类的另一个实例。换句话说:库不导出类,只导出它的实例,我想要另一个实例。以下代码确实解决了此问题:

const myInstance=newimportedInstance.constructor(参数);
它可以像纯javascript一样工作,但不能像typescript那样工作。Typescript抛出一个错误:

TS2351:此表达式不可构造。类型“Function”没有构造签名


除了任何类型转换之外,还有其他类型脚本的解决方案吗,比如
new(importedInstance as any).constructor(params)

您可以通过使用
new()=>InstanceType
告诉typescript构造函数有一个构造签名。所以在你的情况下,它会变成这样:

const myInstance = new (importedInstance.constructor as 
    new(...params: typeof params) => typeof importedInstance)(params);