【发布时间】:2021-01-09 22:38:06
【问题描述】:
我有一个函数,它接受一个动态对象并以角度打字稿返回一个对象:
public clean(row: object): object {
//[... what to do here ? ]
return row;
}
这个函数应该可以取任意模型/接口的对象
假设我有以下通过函数传递的数据:
this.data = {
property1: 1,
property2: 'prop2',
property3: 'prop3',
property4: 'prop4'
}
我希望上面的“清洁”函数返回以下内容:
this.data2 = {
property1: 1,
property2: 'prop2',
property3: 'prop3'
}
换句话说,我想每次都删除 property4。
但是,我希望 this.data 是不可变的,这意味着我不想覆盖它,但我想返回新模型而不覆盖旧模型(这是我现在的问题,它一直覆盖它)。
我该怎么做?我尝试使用以下内容:
let data2 = this.data;
delete data2['property4'];
return data2;
但是,它会覆盖 this.data。
感谢您的帮助!
【问题讨论】:
-
让 data2 = {...this.data}
-
就这么简单:
const filterObject = (obj, trashPropName) => {const {[trashPropName]: trash, ...rest} = obj; return rest}
标签: javascript angular typescript