⊗tsSpGnPTL 36 of 37 menu

Brug af typeparametre i begrænsninger af generics i TypeScript

TypeScript har også mulighed for at deklarere en typeparameter, som vil være begrænset af en anden typeparameter. Dette er nødvendigt, når man skal kopiere egenskaber fra et objekt til et andet, samtidig med at man sikrer sig mod, at vi ikke overfører unødvendige egenskaber.

Lad os se på følgende eksempel. Lad os igen vende tilbage til funktionen myFunc, som bestemmer længden af en variabel:

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

Men nu ønsker vi, at denne funktion kun skal arbejde med de typer, som har egenskaben length. For at gøre dette laver vi et interface ILength, som vi giver egenskaben length af typenummer:

interface ILength { length: number; }

Derefter i vores funktion angiver vi en generisk type, som arver fra ILength via nøgleordet extends:

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

Sådan ser vores fulde kode ud:

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

Lad os teste vores funktion og finde længden af en streng:

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

Resultatet af den udførte kode:

5 'abcde'

Og lad os nu sende et array som parameter:

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

Resultatet af den udførte kode:

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