Statiska egenskaper i TypeScript
Låt oss titta på hur man kommer åt statiska egenskaper inuti objekt.
Låt oss säga att vi har följande klass med en statisk egenskap:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
Låt oss nu skapa en metod som visar den totala lönen:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // vi hänvisar till klassens namn
}
}
Låt oss nu skapa en metod som ändrar den totala lönen:
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;
}
}
Statiska egenskaper kommer att vara gemensamma för olika objekt. Det betyder att när egenskapen ändras i ett objekt, så kommer den att ändras i det andra också. Låt oss kontrollera detta.
Låt oss skapa två objekt av vår klass:
let user1: User = new User('john');
let user2: User = new User('eric');
Låt oss ändra lönen för den första användaren:
user1.setSalary(2000);
Låt oss kontrollera att lönen ändrades även för den andra användaren:
console.log(user2.getSalary()); // 2000
Låt oss kontrollera att lönen också ändrades i klassens egna egenskap:
console.log(User.salary); // 2000
Till klassen Student lägg till en statisk
egenskap university. Visa denna
egenskap utan att deklarera ett objekt.