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` 的值也变了!而且我不知道如何正确克隆嵌套对象和数组。
请