⊗tsSpGnPTL 36 of 37 menu

Använda typparametrar i begränsningar av generics i TypeScript

TypeScript har också möjlighet att deklarera en typparameter som kommer att begränsas av en annan typ- parameter. Detta är nödvändigt när man behöver kopiera egenskaper från ett objekt till ett annat, samtidigt som man skyddar sig från att man inte skickar med en extra egenskap.

Låt oss titta på följande exempel. Vi återgår till funktionen myFunc som bestämmer längden på en variabel:

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

Men nu vill vi att denna funktion ska fungera endast med de typer som har egenskapen length. För att göra detta skapar vi gränssnittet ILength, och tilldelar det egenskapen length av numerisk typ:

interface ILength { length: number; }

Sedan i vår funktion sätter vi en generisk typ som ärver från ILength via nyckelordet extends:

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

Så här ser vår fullständiga kod ut:

interface ILength { length: number; } function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

Låt oss testa vår funktion och hitta längden på en sträng:

console.log(myFunc('abcde'));

Resultatet av den utförda koden:

5 'abcde'

Och låt oss nu skicka in en array som parameter:

console.log(myFunc(['a', 'b', 'c']));

Resultatet av den utförda koden:

3 [ 'a', 'b', 'c' ]
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa