Propriedades estáticas em TypeScript
Vamos ver como acessar propriedades estáticas dentro de objetos.
Suponha que temos a seguinte classe com uma propriedade estática:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
Agora vamos criar um método que exibe o salário geral:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // acessamos pelo nome da classe
}
}
Agora vamos criar um método que altera o salário geral:
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;
}
}
As propriedades estáticas serão compartilhadas entre diferentes objetos. Isso significa que ao alterar a propriedade em um objeto, ela mudará no outro também. Vamos verificar isso.
Vamos criar dois objetos da nossa classe:
let user1: User = new User('john');
let user2: User = new User('eric');
Vamos alterar o salário para o primeiro usuário:
user1.setSalary(2000);
Vamos verificar se o salário mudou também para o segundo usuário:
console.log(user2.getSalary()); // 2000
Vamos verificar se o salário também mudou na propriedade da própria classe:
console.log(User.salary); // 2000
Adicione uma propriedade estática
university
à classe Student
. Exiba esta
propriedade sem declarar um objeto.