TypeScript, come previsto anche dalle specifiche ECMAScript 6, supporta la possibilità di definire membri statici. Un membro statico è una proprietà o un metodo che possono essere utilizzati senza necessità di creare un'istanza della classe.
Per definire un membro statico utilizziamo la parola chiave static, come mostrato di seguito:
class Persona {
nome: string;
cognome: string;
constructor(nome, cognome) {
this.nome = nome;
this.cognome = cognome;
}
static concatena(a:string, b:string) {
return a + " " + b;
}
}
Facendo riferimento all'esempio, possiamo utilizzare il metodo concatena()
per concatenare due stringhe con uno spazio di separazione senza bisogno di creare un'istanza della classe Persona
:
console.log(Persona.concatena("Mario", "Rossi")); //Mario Rossi
Dal momento che i metodi statici non sono legati alla singola istanza di una classe, essi non possono accedere ai membri della classe stessa tramite la parola chiave this
. All'interno di un membro statico la parola chiave this
fa riferimento alla classe stessa e non ad un oggetto creato a partire da essa.
In genere i membri statici sono utilizzati per definire proprietà o metodi generali di supporto, come ad esempio convertitori di formato ed altre funzioni di utilità.