Accessors in OOP in TypeScript
Net als in pure JavaScript, kun je in TypeScript accessors voor eigenschappen maken: getters en setters.
In TypeScript mogen de namen van accessors echter niet
overeenkomen met de namen van de eigenschappen. Laten we
dit in de praktijk bekijken. Laten we accessors maken
voor de private eigenschap name. Als
je de namen voor de accessors ook name geeft,
dan zal deze code een fout geven:
class User {
private name: string = '';
public set name(name: string) { // geeft een fout
this.name = name;
}
public get name(): string {
return this.name;
}
}
Laten we het probleem oplossen, bijvoorbeeld door de private eigenschap een andere naam te geven:
class User {
private _name: string = '';
public set name(name: string) {
this._name = name;
}
public get name(): string {
return this._name;
}
}
Maak een klasse User aan, die
private eigenschappen bevat voor naam en leeftijd.
Maak accessors voor deze eigenschappen.
Pas de setter voor leeftijd aan, zodat
leeftijd alleen kan worden ingesteld tussen 0 en
120. Als een andere waarde wordt opgegeven,
moet er een uitzondering worden gegenereerd.