动态更新属性值将替换整个对象

时间:2018-11-22 23:00:17

标签: typescript object parameters

我正在尝试更新正在构建的dataStore服务,并且挂断了最奇怪的问题。

public setOptions(params: Params): void {

    console.log(this._dataStore.options); // always empty here!!!

    for (const key of Object.keys(params)) {
        this._dataStore['options'][key] = params[key];
    }

    console.log(this._dataStore.options); // parameter(s) added
}

使用初始的URL参数集调用setOptions()可以正常工作,并且_dataStore.options包含反映传入参数的属性。

问题是,我每次调用setOptions时,选项属性都被新的params取代,而不是对其进行更新或添加新的内容。

console.log(this._dataStore.options); // city: la  

这对我来说毫无意义,有人可以帮助我理解以及如何正确更新.options对象吗?

1 个答案:

答案 0 :(得分:1)

Object.assign()

合并
for (const key of Object.keys(params)) {
    Object.assign(this._dataStore['options'][key] , params[key]);
   // or reverse arguments if applicable 
}