TypeScript-да private модификатори
private модификатори класс ичидаги
хусусиятлар ва методларга ташқаридан
киришни чеклаш учун қўлланилади. Бу
холда ҳатто ворис классларда ҳам бу
хусусиятларга мурожаат қилиб бўлмайди.
Келгила, мисолда кўрамиз. User
классида name private хусусиятини
яратамиз:
class User {
private name: string;
constructor(name: string) {
this.name = name;
}
}
Конструктор орқали хусусият қийматини берган ҳолда, класс объектини яратамиз:
let user: User = new User('john');
Энди бу private хусусиятни класс ташқарисида ўқишга уриниш хатолик келтиради:
console.log(user.name); // хатолик
Шунингдек, класс ташқарисида бу хусусиятга қандайдир нарса ёзиш уриниши ҳам хатолик келтиради:
user.name = 'eric'; // хатолик
Аммо класс методлари ичида биз private хусусиятмизни ҳам ўқиш, ҳам ўзгартириш имкониятига эгамиз:
class User {
private name: string;
constructor(name: string) {
this.name = name;
}
public getName() {
return this.name; // хусусиятни ўқиш
}
public setName(name: string) {
this.name = name; // хусусиятга янги қиймат берish
}
}
User классни яратинг, унинг ичида
исм ва ёш private хусусиятлари мавжуд
бўлсин. Уларнинг бошланғич қийматлари
конструктор орқали берилсин.
User классингизда getName ва
getAge public методларини яратинг,
улар мос private хусусиятларнинг
кийматларини қайтарсин.
User классингизда setName ва
setAge public методларини яратинг,
улар мос private хусусиятларнинг
кийматларини ўзгартира олсин.