⊗tsSpGnPTL 36 of 37 menu

Uporaba tipskih parametrov v omejitvah generikov v TypeScript

TypeScript omogoča tudi deklaracijo enega tipskega parametra, ki bo omejen z drugim tipskim parametrom. To je potrebno, ko je treba kopirati lastnosti iz enega objekta v drugega, pri tem pa se zavarovati, da ne posredujemo odvečnih lastnosti.

Oglejmo si naslednji primer. Vrnimo se k funkciji myFunc, ki določa dolžino spremenljivke:

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

Vendar zdaj želimo, da ta funkcija deluje samo s tistimi tipi, ki imajo lastnost length. Za to naredimo vmesnik ILength, ki mu določimo lastnost length številskega tipa:

interface ILength { length: number; }

Nato v naši funkciji nastavimo generični tip, ki podeduje od ILength prek ključne besede extends:

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

Tako izgleda naša polna koda:

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

Preverimo delovanje naše funkcije in poiščimo dolžino niza:

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

Rezultat izvedene kode:

5 'abcde'

In zdaj posredujmo polje v parameter:

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

Rezultat izvedene kode:

3 [ 'a', 'b', 'c' ]
Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni