⊗tsSpGnTV 30 of 37 menu

Typvariabler i TypeScript

För att bättre förstå konceptet med generics låt oss skapa vår första funktion - identitetsfunktionen. En sådan funktion returnerar exakt vad som skickades till den - med samma typ.

Låt oss först skriva varianterna av vår funktion var för sig.

Låt oss skriva en funktion som tar ett nummer som parameter och returnerar ett tal:

function func(data: number): number { return data; }

Nu skriver vi en funktion som tar en sträng som parameter och returnerar en sträng:

function func(data: string): string { return data; }

Låt oss nu säga att vi vill att allt detta skall göras av en och samma funktion. Det vill säga vi vill utföra generalisering.

För detta använder vi en typvariabel, som sparar datatypen. En sådan variabel deklareras i vinkelparenteser före de runda parenteserna med funktionens parametrar. Låt oss deklarera en sådan variabel och ge den namnet T (vilket namn som helst går bra):

function func <T>(här parametrar) { return data; }

Efter detta kommer vi att ha variabeln T, som kan användas för att lägga parameterns typ i den, och sedan ange den som returtyp.

Låt oss ange typen för vår parameter som vår variabel:

function func <T>(data: T) { return data; }

Resultatet blir att parametern kan skickas i vilken typ som helst, och den typen sparas i vår variabel T.

Nu använder vi värdet av variabeln T för att ange funktionens returtyp:

function func <T>(data: T): T { return data; }

Nu kommer det att bli så att funktionens returtyp kommer från parameterns typ. Låt oss testa.

Anropa funktionen med ett tal:

console.log( func(3) ); // skriver ut 3

Anropa funktionen med en sträng:

console.log( func('x') ); // skriver ut 'x'

Skapa en funktion som som parameter tar antingen två tal, eller två strängar. Funktionen ska returnera summan av parametrarna.

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