Propiedades estáticas en TypeScript
Veamos cómo acceder a propiedades estáticas dentro de objetos.
Supongamos que tenemos la siguiente clase con una propiedad estática:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
Ahora creemos un método que muestre el salario general:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // accedemos mediante el nombre de la clase
}
}
Ahora creemos un método que modifique el salario general:
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;
}
}
Las propiedades estáticas serán comunes para diferentes objetos. Esto significa que al cambiar la propiedad en un objeto, también cambiará en el otro. Comprobemos esto.
Creemos dos objetos de nuestra clase:
let user1: User = new User('john');
let user2: User = new User('eric');
Cambiemos el salario para el primer usuario:
user1.setSalary(2000);
Comprobemos que el salario también cambió para el segundo usuario:
console.log(user2.getSalary()); // 2000
Comprobemos que el salario también cambió en la propiedad de la clase misma:
console.log(User.salary); // 2000
En la clase Student agregue una propiedad
estática university. Muestre esta
propiedad sin declarar un objeto.