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

问题描述 投票:-1回答:1

我有一个私人财产类:

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中执行此操作?

typescript typescript2.0
1个回答
4
投票

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

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

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

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

注意我从类中删除了实现,因为私有字段不能作为接口的实现

© www.soinside.com 2019 - 2024. All rights reserved.