⊗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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել