说我有下面的类:如何使一个JS对象*成为*一个打字稿类实例
export class MyClass {
str: string = '';
foo() {
console.log(this.str);
}
}
然后,在其他一些代码:
var myObj = {
str: 'Hello World';
}
我如何转换myObj
成为MyClass
实例,因此以下行可以工作:
myObj.foo();
// writes 'Hello World' to the console
(请注意,我不能改变的myObj
创造,因为它在另一个库中创建)
*****编辑:*****
我还在寻找一个解决方案。主要问题是MyClass
引用了其他类,这些类可能引用MyClass
。这是一个完整的对象图,我试图转换为TypeScript类。
我知道它的类型的每个类和每个属性,它与在MyClass
上定义的类和属性完全匹配。
如果碰巧在其他类的构造函数中有代码,它将不会被解雇,这使得这个解决方案在所有情况下都不一定是可移植的。您可能需要考虑将数据复制到新实例中。这样构造函数和属性设置者就有机会执行。 – WiredPrairie
你不应该摆弄'''__proto__'''。它在ES5及其以下版本中是非标准的,即使在ES6中,也不鼓励自己设置它。 – Arnavion