Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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ää