Avatar ·

¿Qué son get y set (getters y setters) en TypeScript y cómo usarlos correctamente?

¡Hola a todos! Acabo de empezar a aprender TypeScript después de JavaScript, y tengo confusión con los getters y setters. En JS solía hacer las propiedades de los objetos públicas y acceder a ellas directamente: `user.name = 'John'`. Pero en TypeScript veo que muchos usan `get` y `set` para acceder a las propiedades. No entiendo bien para qué sirve esto y cómo implementarlo correctamente. Aquí hay un ejemplo de mi código, donde intento hacer una clase User con getter y 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); ``` Pero TypeScript se queja de esta definición. Recibo el error: "Property 'name' is already declared in the upper scope". Y además, no entiendo para qué sirven los getters y setters si simplemente puedo hacer `public name: string` y acceder.