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:

typescriptclass User {
  private name: string;
  
  constructor(name: string) {
    this.name = name;
  }
}

Keling, sinf ob'ektini yarataylik, konstruktorga xususiyatimizning qiymatini berib:

typescriptlet user: User = new User('john');

Endi bu private xususiyatni sinf tashqarisida o'qishga urinish xatolikka olib keladi:

typescriptconsole.log(user.name); // xato

Shuningdek, sinf tashqarisidan bu xususiyatga biror narsa yozishga urinish ham xatolikka olib keladi:

typescriptuser.name = 'eric'; // xato

Ammo sinf metodlari ichida biz private xususiyatimizning qiymatini ham o'qish, ham o'zgartirish imkoniyatiga egamiz:

typescriptclass 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
  }
}
Задание 1

User sinfini yarating, unda ism va yosh private xususiyatlari bo'lsin. Ularning boshlang'ich qiymatlari konstruktor orqali berilsin.

Задание 2

User sinfingizda getName va getAge public metodlarini yarating, ular mos keladigan private xususiyatlarning qiymatlarini olish imkonini bersin.

Задание 3

User sinfingizda setName va setAge public metodlarini yarating, ular mos keladigan private xususiyatlarning qiymatlarini o'zgartirish imkonini bersin.