Աքսեսորներ ՕՕՊ-ում TypeScript-ում
Ճիշտ այնպես, ինչպես մաքուր JavaScript-ում, TypeScript-ում նույնպես կարելի է ստեղծել աքսեսորներ հատկությունների՝ գետտերներ և սետտերներ:
Սակայն TypeScript-ում աքսեսորների անունները
չպետք է համընկնեն հատկությունների անունների հետ: Եկեք գործնականում նայենք:
Ստեղծենք աքսեսորներ name մասնավոր հատկության համար: Եթե
աքսեսորների համար նույնպես name անունը տանք,
ապա այդպիսի կոդը կտա սխալ:
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 միջակայքում: Եթե նշված լինի այլ
արժեք, պետք է նետվի բացառություն: