如果与传播算子一起使用,则需要将接口的属性分配给唯一定义的对象。
我期望将TypeScript构造函数与Spread运算符一起使用的解决方案。
例如。
SpVoice
这是一个选择,因此当我这样调用此类时,那里没有多少成员,但是我只有export interface IBrand {
id: string;
name: string;
}
export class Brand implements IBrand {
id: string;
name: string;
constructor(data: IBrand) {
this.id = data.id;
this.name = data.name;
}
}
到最终对象。
id, name
案例:但是当我有25个以上的new Brand({...data })
按键时
data
我希望不要再写所有属性构造函数。不管它有25个,它都只是分配现有属性。如果数据具有export interface IBrand {
id: string;
name: string;
}
export class Brand implements IBrand {
id: string;
name: string;
constructor(data: Partial<IBrand>) {
Object.assign(this, data);
}
}
或任何其他属性,它将被忽略。
我的第二个片段不起作用。
答案 0 :(得分:1)
这不使用传播运算符,但是您可以使用this answer
中的方法constructor(data: IBrand) {
for (let key in data) {
this[key] = data[key];
}
}
然后实例化...
new Brand(data);
答案 1 :(得分:0)
我找到了一个使用class-transformer包的重复代码的更好的解决方案。它还有助于将输入公开并将其转换为所需的输出。