⊗tsSpGnPTL 36 of 37 menu

Bruk av typeparametere i begrensninger for generiske typer i TypeScript

TypeScript har også mulighet til deklarasjon av en typeparameter som vil være begrenset av en annen typeparameter. Dette er nødvendig når man må kopiere egenskaper fra ett objekt til et annet, samtidig som man forsikrer seg om at vi ikke overfører unødvendige egenskaper.

La oss se på følgende eksempel. Vi går tilbake til funksjonen myFunc, som bestemmer lengden på en variabel:

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

Men nå ønsker vi at denne funksjonen skal fungere bare med de typene som har egenskapen length. For å gjøre dette, lager vi et grensesnitt ILength, og tilordner det egenskapen length av numerisk type:

interface ILength { length: number; }

Deretter setter vi i vår funksjon en generisk type, som arver fra ILength via nøkkelordet extends:

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

Slik ser vår fulle kode ut:

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

La oss teste funksjonen vår og finne lengden på en streng:

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

Resultatet av den utførte koden:

5 'abcde'

La oss nå sende inn en array som parameter:

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

Resultatet av den utførte koden:

3 [ 'a', 'b', 'c' ]
Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis