Clonación de objetos en TypeScript: copia profunda y superficial
```html
¡Hola! Soy nuevo en TypeScript (y JS en general). Tengo un objeto con datos de usuario:
```typescript
interface User {
name: string;
age: number;
address: {
city: string;
street: string;
};
hobbies: string[];
}
const user: User = {
name: 'Анна',
age: 28,
address: {
city: 'Москва',
street: 'Тверская'
},
hobbies: ['чтение', 'бег']
};
```
Necesito crear una copia de este objeto y cambiar solo `age`, pero de manera que el objeto original permanezca sin cambios. Intenté simplemente asignar:
```typescript
const userCopy = user;
userCopy.age = 30;
```
¡Pero también se modificó `user.age`! Luego usé el spread operator:
```typescript
const userCopy = { ...user };
userCopy.age = 30;
```
Esto funcionó para `age`, pero cuando intenté cambiar `userCopy.address.city = 'СПб'`, ¡el valor de `user.address.city` también cambió! Además, no puedo entender cómo clonar correctamente objetos y arrays anidados.
```