Avatar ·

TypeScript中的对象克隆:深拷贝与浅拷贝

你好!我是TypeScript(以及JS)的新手。我有一个用户数据对象: ```typescript interface User { name: string; age: number; address: { city: string; street: string; }; hobbies: string[]; } const user: User = { name: '安娜', age: 28, address: { city: '莫斯科', street: '特维尔大街' }, hobbies: ['阅读', '跑步'] }; ``` 我需要创建这个对象的副本,并且只修改其中的 `age`,但保持原始对象不变。我尝试了直接赋值: ```typescript const userCopy = user; userCopy.age = 30; ``` 但这样 `user.age` 也改变了!然后我使用了 spread 操作符: ```typescript const userCopy = { ...user }; userCopy.age = 30; ``` 这对 `age` 有效,但当我尝试修改 `userCopy.address.city = '圣彼得堡'` 时,`user.address.city` 的值也变了!而且我不知道如何正确克隆嵌套对象和数组。 请