⊗tsSpGnPTL 36 of 37 menu

Употреба типских параметара у ограничењима генерика у TypeScript-у

Такође, у TypeScript-у постоји могућност декларисања једног типског параметра који ће бити ограничен другим типским параметром. Ово је неопходно када треба копирати својства из једног објекта у други, при том осигуравајући се да не проследимо вишак својстава.

Хајде да размотримо следећи пример. Поново се вратимо на функцију myFunc која одређује дужину променљиве:

function myFunc <T> (data: T): T { console.log(data.length); // грешка return data; }

Међутим, сада желимо да ова функција ради само са оним типовима који имају својство length. За то ћемо направити интерфејс ILength, којем ћемо задати својство length нумеричког типа:

interface ILength { length: number; }

Затим у нашој функцији задајмо генерички тип, који наслеђује од ILength преко кључне речи extends:

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

Ево како изгледа наш потпуни код:

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

Хајде да проверимо рад наше функције и пронађемо дужину ниске:

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

Резултат извршеног кода:

5 'abcde'

А сада проследимо низ у параметар:

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

Резултат извршеног кода:

3 [ 'a', 'b', 'c' ]
Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј