⊗tsSpGnCls 34 of 37 menu

Gegeneraliseerde klassen in TypeScript

Naast gegeneraliseerde interfaces in TypeScript kun je ook gegeneraliseerde klassen maken.

Laten we een klasse User van een gegeneraliseerd type maken. We schrijven ook een eigenschap value van een gegeneraliseerd type en maken een bijbehorende constructor:

class User <T> { value: T; constructor(userData: T) { this.value = userData; } }

Laten we nu een object van deze klasse maken en er een stringwaarde in de eigenschap invoeren:

let user = new User('john'); console.log(user.value); // 'john'

Echter, als we het object bij aanroep al een stringwaarde hebben gegeven, kunnen we deze waarde niet overschrijven naar een ander type:

let user = new User('john'); user.value = 35;

Bij een poging de code uit te voeren zien we de volgende fout:

Type 'number' is not assignable to type 'string'.

Maar tegelijkertijd kunnen we de stringwaarde wel overschrijven:

let user = new User('john'); user.value = 'alex'; console.log(user.value); // 'alex'

Merk op dat we de eigenschap van het zelfde object niet naar een ander type kunnen overschrijven, maar we kunnen wel gewoon een ander object aanmaken:

let newUser = new User(35); console.log(newUser.value); // 35
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren