简体   繁体   English

隐藏打字稿类到对象

[英]Covert typescript class to object

我有一个打字稿 A 类和另一个 B 类具有 A 类的所有属性。有没有办法将所有值从 B 类复制到 A 类。或者有没有办法将 A 类的所有属性作为对象获取。

Class instances are objects, as such you can use normal object prototype functions ex.类实例是对象,因此您可以使用普通的对象原型函数,例如。

 class MyClass { _a=0; _b=0; constructor(a, b){ this._a=a; this._b=b; } set a(a){ return this._a = a; } get a(){ return this._a; } set b(b){ return this._b = b; } get b(){ return this._b; } } const instance = new MyClass(2,3); console.log("keys", Object.keys(instance)) console.log("values", Object.values(instance)) console.log("entries", Object.entries(instance)) instance.a = 5; instance.b = 5; console.log("keys", Object.keys(instance)) console.log("values", Object.values(instance)) console.log("entries", Object.entries(instance))

Take into account that it will only return actual parameters, and ignore setters and getters考虑到它只会返回实际参数,而忽略 setter 和 getter

I don't really understand the question.我真的不明白这个问题。 If you need to copy all field values from class 1 to class 2, you can use:如果需要将所有字段值从类 1 复制到类 2,可以使用:

Object.assign(cl2, cl1);

Here is full example ( can test it here , just press "Run"):这是完整的示例( 可以在这里测试,只需按“运行”):

class Class1 {
    public a: number = 1;
    public b: number = 2;
    public c: number = 3;
};

class Class2 {
    public a?: number;
    public b?: number;
    public c?: number;
};

let cl1 = new Class1;
console.log('1 = ', cl1, cl1 instanceof Class1, cl1 instanceof Class2)

let cl2: Class2 = new Class2;
Object.assign(cl2, cl1);

console.log('2 = ', cl2, cl2 instanceof Class1, cl2 instanceof Class2);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM