⊗tsSpGnTV 30 of 37 menu

Generieke variabelen in TypeScript

Voor een beter begrip van het concept van generieken laten we onze eerste functie creëren - identiteitsfunctie. Zo'n functie retourneert exact wat er werd doorgegeven - met hetzelfde type.

Laten we eerst de varianten van onze functie afzonderlijk schrijven.

Laten we een functie schrijven die een getal als parameter accepteert en een getal retourneert:

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

Laten we nu een functie schrijven die een string als parameter accepteert en een string retourneert:

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

Stel dat we nu willen dat één functie dit allemaal doet. We willen dus generalisatie uitvoeren.

Hiervoor gebruiken we een generieke variabele, die het gegevenstype opslaat. Zo'n variabele wordt gedeclareerd in punthaken voor de ronde haakjes met de functieparameters. Laten we zo'n variabele declareren, met de naam T (elk willekeurig naam is mogelijk):

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

Hierna hebben we de variabele T beschikbaar, die we kunnen gebruiken om het type van de parameter erin op te slaan, en vervolgens aan te geven als het retourtype.

Laten we het type van onze parameter specificeren als onze variabele:

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

Het resultaat is dat de parameter kan worden doorgegeven in elk willekeurig type, en dit type wordt opgeslagen in onze variabele T.

Laten we nu de waarde van variabele T gebruiken om het resultaattype van de functie aan te geven:

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

Nu zal het type van het functieresultaat worden afgeleid van het type van de parameter. Laten we dit testen.

Roep de functie aan met een getal:

console.log( func(3) ); // geeft 3 weer

Roep de functie aan met een string:

console.log( func('x') ); // geeft 'x' weer

Maak een functie die als parameter ofwel twee getallen, ofwel twee strings accepteert. Als resultaat moet de functie de som van de parameters retourneren.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren