Avatar ·

Clonagem de objetos em TypeScript: cópia profunda e superficial

Olá! Sou novo em TypeScript (e JS em geral). Tenho um objeto com dados de usuário: ```typescript interface User { name: string; age: number; address: { city: string; street: string; }; hobbies: string[]; } const user: User = { name: 'Анна', age: 28, address: { city: 'Москва', street: 'Тверская' }, hobbies: ['leitura', 'corrida'] }; ``` Preciso criar uma cópia deste objeto e alterar apenas `age`, mas de forma que o objeto original permaneça inalterado. Tentei simplesmente atribuir: ```typescript const userCopy = user; userCopy.age = 30; ``` Mas com isso `user.age` também mudou! Depois usei o spread operator: ```typescript const userCopy = { ...user }; userCopy.age = 30; ``` Isso funcionou para `age`, mas quando tentei alterar `userCopy.address.city = 'СПб'`, o valor de `user.address.city` também mudou! E também não consigo entender como clonar corretamente objetos e arrays aninhados.