I getter e setter in TypeScript permettono di controllare l'accesso alle proprietà di una classe. Offrono un modo per esporre le proprietà in modo sicuro, fornendo al contempo flessibilità per aggiungere logica personalizzata durante la lettura o la scrittura dei valori.
Definizione di Getter
Un getter è un metodo che viene usato per leggere il valore di una proprietà. Si definisce con la parola chiave get
.
class Person {
private _name: string;
constructor(name: string) {
this._name = name;
}
get name(): string {
return this._name;
}
}
const p = new Person("Mario");
console.log(p.name); // "Mario"
Definizione di Setter
Un setter è un metodo che viene usato per modificare il valore di una proprietà. Si definisce con la parola chiave set
.
class Person {
private _name: string;
constructor(name: string) {
this._name = name;
}
get name(): string {
return this._name;
}
set name(newName: string) {
if (newName.length > 0) {
this._name = newName;
} else {
throw new Error("Il nome non può essere vuoto.");
}
}
}
const p = new Person("Mario");
p.name = "Luigi";
console.log(p.name); // "Luigi"
Vantaggi dell'uso di Getter e Setter
- Incoraggiano l'incapsulamento.
- Permettono la validazione dei dati in ingresso.
- Possono essere usati per calcolare valori derivati.
Considerazioni
Anche se getter e setter possono sembrare semplici accessori, sono strumenti potenti per progettare classi robuste e mantenibili. Ricorda che, a differenza delle proprietà normali, i getter e setter possono introdurre logica, quindi usali con attenzione per evitare effetti collaterali imprevisti.