TypeScript - Accessori
Ciao a tutti, aspiranti programmatori! Oggi esploreremo il mondo affascinante degli accessori di TypeScript. Non preoccupatevi se siete nuovi alla programmazione - vi guiderò attraverso questo argomento passo dopo passo, proprio come ho fatto per centinaia di studenti negli anni di insegnamento. Allora, prendete una tazza della vostra bevanda preferita e iniziamo!
Cos'è un Accessore?
Prima di immergerci nei dettagli degli accessori di TypeScript, capiremo cos'è un accessorie in generale. Immagina di avere una cassetta del tesoro (il nostro oggetto) e di voler controllare come le persone interagiscono con i tesori all'interno (le proprietà dell'oggetto). Gli accessori sono come le chiavi magiche che ti permettono di ottenere o impostare questi tesori in modo controllato.
In TypeScript, abbiamo due tipi di accessori:
- Getters: Questi ci aiutano a recuperare il valore di una proprietà.
- Setters: Questi ci permettono di impostare il valore di una proprietà.
Ora, esploriamo ciascuno di questi in dettaglio.
Getters in TypeScript
Cos'è un Getter?
Un getter è un tipo speciale di metodo che ti permette di accedere a una proprietà di un oggetto. È come avere un assistente personale che recupera informazioni per te.
Come Definire un Getter
Guardiamo un esempio semplice:
class Person {
private _name: string;
constructor(name: string) {
this._name = name;
}
get name(): string {
console.log("Getting the name");
return this._name;
}
}
let person = new Person("Alice");
console.log(person.name); // Output: Getting the name \n Alice
In questo esempio:
- Abbiamo una classe
Person
con una proprietà privata_name
. - Definiamo un getter chiamato
name
utilizzando la parola chiaveget
. - Quando accediamo a
person.name
, chiama il nostro metodo getter.
Perché Usare Getters?
- Proprietà Calcolate: I getters possono restituire valori calcolati.
class Circle {
private _radius: number;
constructor(radius: number) {
this._radius = radius;
}
get area(): number {
return Math.PI * this._radius ** 2;
}
}
let circle = new Circle(5);
console.log(circle.area); // Output: 78.53981633974483
- Caricamento Lazy: I getters possono aiutare con le prestazioni caricando i dati solo quando necessario.
class DataFetcher {
private _data: string | null = null;
get data(): string {
if (this._data === null) {
console.log("Fetching data...");
this._data = "Some expensive data";
}
return this._data;
}
}
let fetcher = new DataFetcher();
console.log(fetcher.data); // Output: Fetching data... \n Some expensive data
console.log(fetcher.data); // Output: Some expensive data (no fetching this time)
Setters in TypeScript
Cos'è un Setter?
Un setter è come il counterpart di un getter. È un metodo che imposta il valore di una proprietà, spesso con un po' di logica aggiuntiva.
Come Definire un Setter
Ecco un esempio di base:
class Temperature {
private _celsius: number = 0;
set celsius(value: number) {
if (value < -273.15) {
throw new Error("Temperature below absolute zero is not possible");
}
this._celsius = value;
}
get celsius(): number {
return this._celsius;
}
}
let temp = new Temperature();
temp.celsius = 25; // Questo chiama il setter
console.log(temp.celsius); // Output: 25
// temp.celsius = -300; // Questo lancerebbe un errore
In questo esempio:
- Abbiamo una classe
Temperature
con una proprietà privata_celsius
. - Definiamo un setter per
celsius
che verifica se il valore è valido prima di impostarlo.
Perché Usare Setters?
-
Validazione dei Dati: I setters possono assicurare che solo valori validi siano assegnati alle proprietà.
-
Effetti Collaterali: I setters possono innescare altre azioni quando una proprietà viene modificata.
class User {
private _name: string = "";
private _lastUpdated: Date = new Date();
set name(value: string) {
this._name = value;
this._lastUpdated = new Date();
}
get name(): string {
return this._name;
}
get lastUpdated(): Date {
return this._lastUpdated;
}
}
let user = new User();
user.name = "Bob";
console.log(user.name); // Output: Bob
console.log(user.lastUpdated); // Output: Current date and time
Tabella dei Metodi Accessori
Ecco un riepilogo dei metodi accessorio che abbiamo trattato:
Tipo di Accessore | Parola Chiave | Scopo | Esempio |
---|---|---|---|
Getter | get |
Recupera il valore di una proprietà | get name(): string { return this._name; } |
Setter | set |
Imposta il valore di una proprietà | set name(value: string) { this._name = value; } |
Conclusione
Gli accessori in TypeScript forniscono un modo potente per controllare come le proprietà degli oggetti vengono accessibili e modificate. Permettono di aggiungere logica, validazione e proprietà calcolate alle tue classi, rendendo il codice più robusto e manutenibile.
Ricorda, come ogni nuova abilità, padroneggiare gli accessori richiede pratica. Non ti scoraggiare se non ci riesci subito - continua a programmare, continua a sperimentare, e presto sarai in grado di usare getters e setters come un professionista!
Come sempre dico ai miei studenti, programmare è come imparare una nuova lingua. All'inizio, potrebbe sembrare confusionario, ma con pazienza e pratica, presto parlerai TypeScript fluentemente. Buon divertimento con il coding, e non dimenticare di divertirti lungo il percorso!
Credits: Image by storyset