Typescript 类实例到 JavaScript 对象

NoK*_*Key 3 javascript typescript

这是我的代码:

class A{
    test: string
    constructor(test: string){
        this.test = test
    }
}
const a = new A("hi")
console.log(a)
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

一个{测试:'嗨'}

当我想将其作为 Javascript 对象上传时,它被拒绝,因为它不是 Javascript 对象。我可以这样做:

const someJSON = JSON.stringify(a)
const javascriptObject = JSON.parse(someJSON)
Run Code Online (Sandbox Code Playgroud)

但我认为一定有更好的方法,这感觉就像一个黑客。如何将 TypeScript 类实例转换为纯 JavaScript 对象?

H.B*_*.B. 5

如果你想要一个普通的 JS 对象而不是类实例,你可以传播属性,例如:

class A{
    constructor(test){
        this.test = test
    }
}
const a = new A("hi");
const b = { ...a };

console.log('a:', a);
console.log('b:', b);
console.log('Is b instance of A:', b instanceof A);
Run Code Online (Sandbox Code Playgroud)