我有两个具有许多属性的对象。我只想将属性从一个对象复制到另一个对象。
这是对象接口:
interface Settings {
locale: string;
currency: string;
style: string;
isDark: boolean;
// There are more fields here
}
两个对象的定义如下:
const settings: Settings = {/*assign all fields here*/}
const settingsChange: Partial<Settings> = {/*change some fields*/}
现在我需要将settingsChange
中的字段分配给settings
,我正试图像在javascript中那样进行操作
Object.entries(settingsChange).forEach(([key, value])=>{
settings[key] = settingsChange[key] || settings[key]
})
这是我收到的打字稿掉毛错误:
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Settings'.
No index signature with a parameter of type 'string' was found on type 'Settings'.ts(7053)
我该如何解决?我知道Object.assign
可以工作,但是Object.entries
给了我更大的自由,可以应用所需的任何逻辑。
答案 0 :(得分:0)
GET http://localhost:5000/get_users net::ERR_CONNECTION_REFUSED
Error: Network Error
at: createError(createError.js:16)
at: XMLHttpRequest.handleError (xhr.js:91)
如果需要对值做一些逻辑,则可以执行以下操作:
settings = {
...settings,
...settingsChange
};