⊗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; }

Андан кийин биздин функциябызда extends ачкыч сөзү аркылуу ILength дан мураска алган жалпыланган типти беребиз:

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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу