我有一个私人财产类:
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中执行此操作?
最简单的方法是使用Object.assign
。它只会复制构造函数参数中指定的文件。
interface IA{
id? : number;
name? : string
}
class A {
private id: number;
private name: string;
constructor(obj: IA) {
Object.assign(this, obj)
}
}
注意我从类中删除了实现,因为私有字段不能作为接口的实现