如何在TypeScript中为类的所有属性分配值?

时间:2018-09-02 11:50:19

标签: typescript typescript2.0

我有一个具有私有属性的课程:

class A implements IA {
   private id: number;
   private name: string;

   constructor(obj: IA) {
      // Set here properties from obj
   }
}

创建实例A时,我想传递带有初始化值的对象IA,并仅在我传递的类中重新填充该属性。

new A({id: 1})new A({id: 1, name: "O"})

如何在TypeScript中执行此操作?

1 个答案:

答案 0 :(得分:4)

最简单的方法是仅使用Object.assign。它将仅复制构造函数参数中指定的文件。

interface IA{
    id? : number;
    name? : string
}

class A {
    private id: number;
    private name: string;

    constructor(obj: IA) {
        Object.assign(this, obj)
    }
}

注意,我从类中删除了工具,因为私有字段不能成为接口的必需品