我有一个具有私有属性的课程:
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中执行此操作?
答案 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)
}
}
注意,我从类中删除了工具,因为私有字段不能成为接口的必需品