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áticamentereadonly
. - 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.