我有一个TypeScript类,它是JavaScript类的声明。 JavaScript类具有一个带有一些参数的构造函数,而TypeScript声明则缺少它(有意隐藏)。
TypeScript中是否可以解决此问题,并在仍传递隐藏JavaScript构造函数期望的参数的同时创建TypeScript对象?
我需要一些特殊的测试模型,以解决一个库中的限制,因此可以接受任何破解。
这是JavaScript类,隐藏在第三方库中:
class InnerClass {
constructor(param1, param2, param3) {
}
}
这是库公开的TypeScript声明:
class InnerClass {
// no constructor
}
我需要这样做,
const a: InnerClass = new InnerClass(param1, param2, param3);
即我需要一种方法来创建正确的TypeScript类型的对象,并传递正确的构造函数参数,而TypeScript声明不允许我直接这样做。
可以在TypeScript中实现吗?
答案 0 :(得分:1)
您总是可以通过any
来逃生。
这是一种快速解决方案:
const a: InnerClass = new (InnerClass as any)(param1, param2, param3);
any
声明只会告诉Typescript-开发人员可以使用此变量做他们想做的任何事情。
理想的解决方案是仅更新其声明文件以反映该文件,或将其克隆到您的项目中,并使用该声明文件代替其文件。