TypeScript да ООП да Аксессорлар
Худди соф JavaScript да бўлгани каби, TypeScript да ҳам хоссаларнинг аксессорлари яъни геттерлар ва сеттерлар ясаб олиш мумкин.
Аммо TypeScript да аксессорлар номлари
хоссалар номлари билан мос келиши шарт эмас.
Амалда кўриб чиқайлик. Хусусий name
хоссаси учун аксессорлар ясаймиз. Агар
аксессорлар учун ҳам name номини
берсак, бу код хатолик берadi:
class User {
private name: string = '';
public set name(name: string) { // хатолик беради
this.name = name;
}
public get name(): string {
return this.name;
}
}
Масалани, масалан, хусусий хоссанинг номини ўзгартириш орқали ҳал қиламиз:
class User {
private _name: string = '';
public set name(name: string) {
this._name = name;
}
public get name(): string {
return this._name;
}
}
Исм ва ёш хусусий хоссаларини ўз ичига
олган User классини ясангиз. Бу
хоссалар учун аксессорлар ясангиз.
Ёш учун сеттерни 0 дан 120
гача бўлган қийматни белгилаш мумкин бўладиган
қилиб ўзгартирингиз. Агар бошқа қиймат
кўрсатилса, истисно чиқарилиши керак.