Avatar ·

O que são get e set (getters e setters) em TypeScript e como usá-los corretamente?

Olá a todos! Acabei de começar a estudar TypeScript depois de JavaScript, e fiquei confuso com getters e setters. Em JS, eu estava acostumado a tornar as propriedades dos objetos públicas e acessá-las diretamente: `user.name = 'John'`. Mas em TypeScript, vejo que muitos usam `get` e `set` para acessar propriedades. Não entendo muito bem por que isso é necessário e como implementar corretamente. Aqui está um exemplo do meu código, onde tento criar uma classe User com getter e setter: ```typescript class User { private name: string; constructor(name: string) { this.name = name; } get name(): string { return this.name; } set name(value: string) { this.name = value; } } const user = new User('Alice'); console.log(user.name); ``` Mas o TypeScript reclama dessa definição. Recebo o erro: "Property 'name' is already declared in the upper scope". E também não entendo por que getters e setters são necessários, se posso simplesmente usar `public name: string` e acessar diretamente.