⊗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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне