🥇 Classes, Setters y Getters

Las clases también pueden tener setters (métodos que asignan) y getters (métodos que retraen valores), a estos se les llama accesors.

class Desfile {
  private _participantes = 0;

  get participantes(): number {
    return this._participantes;
  }

  set participantes(v: number) {
    this._participantes = v;
  }
}

const desfileHoy = new Desfile();
desfileHoy.participantes = 100;
console.log(desfileHoy.participantes); // <- 100

Toma en cuenta que el uso de set/get sin lógica adicional, es raramente utilizado en JavaScript. Por ello exponer las propiedades como públicas y escribir el valor sobre ellas.

TypeScript tiene algunas reglas de inferencia para el uso de accessors (setters/getters).

  • Si no existe set, la propiedad es automáticamente readonly.
  • El tipo del setter es inferido del tipo de retorno del getter.
  • Si el setter tiene definido el tipo, debe coincidir con el tipo de retorno del getter.
  • No se puede tener setters y getters asociados a diferentes tipos.