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