TypeScript-da private modifikatori
private modifikatori sinfning tashqarisidan
xususiyatlar va metodlarga kirishni cheklash
kerak bo'lgan hollarda qo'llaniladi. Bu
holda, hatto meros olgan sinflarda ham bu
xususiyatlarga murojaat qilish mumkin bo'lmaydi.
Keling, bir misolni ko'rib chiqaylik.
User sinfida name private xususiyatini
yaratamiz:
class User {
private name: string;
constructor(name: string) {
this.name = name;
}
}
Keling, sinf ob'ektini yarataylik, konstruktorga xususiyatimizning qiymatini berib:
let user: User = new User('john');
Endi bu private xususiyatni sinf tashqarisida o'qishga urinish xatolikka olib keladi:
console.log(user.name); // xato
Shuningdek, sinf tashqarisidan bu xususiyatga biror narsa yozishga urinish ham xatolikka olib keladi:
user.name = 'eric'; // xato
Ammo sinf metodlari ichida biz private xususiyatimizning qiymatini ham o'qish, ham o'zgartirish imkoniyatiga egamiz:
class User {
private name: string;
constructor(name: string) {
this.name = name;
}
public getName() {
return this.name; // xususiyatni o'qiymiz
}
public setName(name: string) {
this.name = name; // xususiyatga yangi qiymat yozamiz
}
}
User sinfini yarating, unda ism va yosh
private xususiyatlari bo'lsin. Ularning boshlang'ich
qiymatlari konstruktor orqali berilsin.
User sinfingizda getName va
getAge public metodlarini yarating, ular
mos keladigan private xususiyatlarning qiymatlarini
olish imkonini bersin.
User sinfingizda setName va
setAge public metodlarini yarating, ular
mos keladigan private xususiyatlarning qiymatlarini
o'zgartirish imkonini bersin.