⊗tsSpGnIms 35 of 37 menu

Yleistyksen rajoitukset TypeScriptissä

Yhdessä aiemmista oppitunneista loimme yleistetyn tyypin funktion, jonka piti tulostaa siihen välitetyn parametrin pituus. Kuitenkin kääntäessä meille annettiin virhe, koska kaikilla tyypeillä ei välttämättä ole pituutta:

function myFunc < T > (data: T): T { console.log(data.length); // virhe return data; }

Siinä tapauksessa korjasimme tilanteen muuttamalla yleistetyn tyypin yleistetyn taulukon tyypiksi. Mutta TypeScriptissä on mahdollista luoda yleistyksen rajoituksia. Tätä varten kulmasulkeissa, muuttujan T jälkeen kirjoitamme avainsanan extends. Sen jälkeen aaltosulkeissa kirjoitamme uuden muuttujan str merkkijonotyypin. Loput funktion koodista pysyvät muuttumattomina:

function myFunc <T extends {str: string}> (data: T): void { console.log(data.str.length); }

Käy ilmi, että yleistetty tyyppi perii tyypin muuttujasta str, joka on määritelty aaltosulkeissa. Testataan nyt funktiomme toimintaa ja luodaan muuttuja myStr, joka viittaa tyyppiin str, ja asetamme sille arvon aaltosulkeissa:

let myStr: {str: string} = {str: 'abcde'};

Kutsutaan funktiota myFunc, unohtamatta määrittää sen tyyppi uudelleen ja välitetään muuttuja myStr parametrina:

myFunc <{str: string}> (myStr);

Oppitunnissa tarkastellun esimerkin perusteella määritä funktio numerotaulukon pituuden löytämiseksi.

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ää