⊗tsSpGnTV 30 of 37 menu

Типске променљиве у TypeScript-у

За боље разумевање концепције генерика хајде да креирамо наш прву функцију - функцију идентитета. Таква функција врата управо оно што јој је прослеђено - са истим типом.

Хајде за почетак да напишемо варијанте наше функције појединачно.

Напишимо функцију која параметар прима број и враћа број:

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

Сада напишимо функцију која параметар прима стринг и враћа стринг:

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

Нека сада желимо да урадимо то да све то ради једна функција. Односно ми желимо да извршимо генерализацију.

За то користимо типску променљиву, која садржи у себи тип података. Таква променљива се декларише у угаоним заградама испред заобљених заграда са параметрима функције. Хајде да декларишемо такву променљиву, давши јој име T (може било које):

function func <T>(тут параметар) { return data; }

После тога ћемо имати променљиву T, коју ћемо моћи користити да бисмо у њу сместили тип параметра, а затим га означили као повратни резултат.

Означимо нашем параметру тип у виду наше променљиве:

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

Испоставља се да параметар може бити прослеђен у било ком типу, и тај тип ће се сачувати у нашу променљиву T.

Сада искористимо вредност променљиве T како бисмо означили резултат функције:

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

Сада је резултат да ће тип резултата функције произилазити из типа параметра. Хајде да проверимо.

Позовимо функцију са бројем:

console.log( func(3) ); // исписаће 3

Позовимо функцију са стрингом:

console.log( func('x') ); // исписаће 'x'

Направите функцију, која параметрима прима или два броја, или два стринга. Својим резултатом функција мора да врати збир параметара.

Српски
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
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј