⊗tsSpGnIms 35 of 37 menu

Begrænsninger af generics i TypeScript

I en af de foregående lektioner oprettede vi en funktion af generisk type, som skulle udskrive længden af parameteren overført til den. Dog fik vi en fejl under kompilering, da ikke alle typer kan have en længde:

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

I det tilfælde løste vi situationen ved at ændre den generiske type til en type af generisk array. Men i TypeScript er der en mulighed for at oprette begrænsninger af generics. For at gøre dette skriver vi nøgleordet extends efter variablen T i vinkelparenteserne. Efter det skriver vi en ny variable str af strengtype i krøllede parenteser. Resten af funktionens kode forbliver uændret:

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

Det betyder, at den generiske type arver typen af variablen str, angivet i krøllede parenteser. Lad os nu teste vores funktions virkning og oprette en variabel myStr, der refererer til typen str, og tildele den en værdi i krøllede parenteser:

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

Lad os kalde funktionen myFunc, uden at glemme at angive dens type igen, og overføre variablen myStr som en parameter:

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

Baseret på eksemplet set i lektionen, angiv funktionen til at finde længden af et numerisk array.

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