⊗tsSpGnPTL 36 of 37 menu

Gebruik van typeparameters in beperkingen van generieken in TypeScript

TypeScript biedt ook de mogelijkheid om één typeparameter te declareren die wordt beperkt door een ander type parameter. Dit is nodig wanneer we eigenschappen van het ene object naar het andere moeten kopiëren, terwijl we moeten voorkomen dat we een extra eigenschap doorgeven.

Laten we het volgende voorbeeld bekijken. Laten we terugkeren naar de functie myFunc die de lengte van een variabele bepaalt:

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

Nu willen we echter dat deze functie alleen werkt met die typen die de eigenschap length hebben. Hiervoor maken we een interface ILength, waaraan we de eigenschap length van het type number toekennen:

interface ILength { length: number; }

Vervolgens specificeren we in onze functie een generiek type dat overerft van ILength via het sleutelwoord extends:

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

Zo ziet onze volledige code eruit:

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

Laten we de werking van onze functie testen en de lengte van een string vinden:

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

Resultaat van de uitgevoerde code:

5 'abcde'

Laten we nu een array doorgeven als parameter:

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

Resultaat van de uitgevoerde code:

3 [ 'a', 'b', 'c' ]
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