⊗tsSpGnPTL 36 of 37 menu

Korišćenje tipskih parametara u ograničenjima generika u TypeScript-u

TypeScript takođe omogućava deklarisanje jednog tipskog parametra koji će biti ograničen drugim tips kim parametrom. Ovo je neophodno kada treba kopirati svojstva iz jednog objekta u drugi, i pri tome se osigurati da ne prosledimo suvišno svojstvo.

Hajde da pogledamo sledeći primer. Ponovo vratimo na funkciju myFunc koja određuje dužinu promenljive:

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

Međutim, sada želimo da ova funkcija radi samo sa onim tipovima koji imaju svojstvo length. Za to ćemo napraviti interfejs ILength, i dodelićemo mu svojstvo length numeričkog tipa:

interface ILength { length: number; }

Zatim u našoj funkciji ćemo postaviti generički tip, koji nasleđuje od ILength preko ključne reči extends:

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

Ovako izgleda naš puni kod:

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

Hajde da proverimo rad naše funkcije i pronađemo dužinu stringa:

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

Rezultat izvršenog koda:

5 'abcde'

A sada prosledimo parametar niz:

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

Rezultat izvršenog koda:

3 [ 'a', 'b', 'c' ]
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij