Propriétés statiques en TypeScript
Voyons comment accéder aux propriétés statiques à l'intérieur des objets.
Supposons que nous ayons la classe suivante avec une propriété statique :
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
Créons maintenant une méthode affichant le salaire général :
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // on accède par le nom de la classe
}
}
Créons maintenant une méthode modifiant le salaire général :
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary;
}
setSalary(salary: number) {
User.salary = salary;
}
}
Les propriétés statiques seront communes aux différents objets. Cela signifie que lors du changement de la propriété dans un objet, elle changera également dans l'autre. Vérifions cela.
Créeons deux objets de notre classe :
let user1: User = new User('john');
let user2: User = new User('eric');
Modifions le salaire pour le premier utilisateur :
user1.setSalary(2000);
Vérifions que le salaire a changé également pour le deuxième utilisateur :
console.log(user2.getSalary()); // 2000
Vérifions que le salaire a également changé dans la propriété de la classe elle-même :
console.log(User.salary); // 2000
Dans la classe Student ajoutez une propriété statique
university. Affichez cette
propriété sans déclarer d'objet.