⊗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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць