⊗tsSpGnCls 34 of 37 menu

Yleistyneet luokat TypeScriptissä

TypeScriptissä yleistyneiden rajapintojen lisäksi voidaan tehdä myös yleistyneitä luokkia.

Luodaan yleistetyn tyypin luokka User. Kirjoitetaan myös yleistetyn tyypin ominaisuus value ja tehdään vastaava konstruktori:

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

Tehdään nyt tämän luokan olio ja kirjoitetaan sille merkkijonoarvo ominaisuuteen:

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

Kuitenkin, jos olemme jo asettaneet oliolle sen kutsuttaessa merkkijonoarvon, emme pysty kirjoittamaan uudelleen tätä arvoa toiseen tyyppiin:

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

Yrittäessämme ajaa koodin näemme seuraavan virheen:

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

Mutta samalla voimme kirjoittaa uudelleen merkkijonoarvon:

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

Huomaa, että emme voi kirjoittaa uudelleen saman olion ominaisuutta toiseen tyyppiin, mutta voimme luoda yksinkertaisesti toisen olion:

let newUser = new User(35); console.log(newUser.value); // 35
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää