სტატიკური თვისებები TypeScript-ში
მოდით ვნახოთ, როგორ მივწვდეთ სტატიკურ თვისებებს ობიექტების შიგნით.
დავუშვათ, გვაქვს შემდეგი კლასი სტატიკური თვისებით:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
ახლა შევქმნათ მეთოდი, რომელიც გამოიტანს ჯამურ ხელფასს:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // კლასის სახელით მივწვდებით
}
}
ახლა შევქმნათ მეთოდი, რომელიც შეცვლის ჯამურ ხელფასს:
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;
}
}
სტატიკური თვისებები სხვადასხვა ობიექტებისთვის საერთო იქნება. ეს ნიშნავს, რომ თვისების ცვლილება ერთ ობიექტში, იცვლება მეორეშიც. შევამოწმოთ ეს.
შევქმნათ ორი ობიექტი ჩვენი კლასის:
let user1: User = new User('john');
let user2: User = new User('eric');
მოდით შევცვალოთ ხელფასი პირველი მომხმარებლისთვის:
user1.setSalary(2000);
შევამოწმოთ, რომ ხელფასი შეიცვალა მეორე მომხმარებლისთვისაც:
console.log(user2.getSalary()); // 2000
შევამოწმოთ, რომ ხელფასი ასევე შეიცვალა თავად კლასის თვისებაში:
console.log(User.salary); // 2000
კლასში Student დაამატეთ სტატიკური
თვისება university. გამოიტანეთ ეს
თვისება ობიექტის გამოცხადების გარეშე.