具有传播运算符的Typescript构造函数

时间:2019-05-08 11:59:05

标签: typescript

如果与传播算子一起使用,则需要将接口的属性分配给唯一定义的对象。

我期望将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); } } 或任何其他属性,它将被忽略。

我的第二个片段不起作用。

2 个答案:

答案 0 :(得分:1)

这不使用传播运算符,但是您可以使用this answer

中的方法
constructor(data: IBrand) {
    for (let key in data) {
        this[key] = data[key];
    }
}

然后实例化...

new Brand(data);

答案 1 :(得分:0)

我找到了一个使用class-transformer包的重复代码的更好的解决方案。它还有助于将输入公开并将其转换为所需的输出。