⊗tsSpGnPTL 36 of 37 menu

Tipinių parametrų naudojimas generikų apribojimuose TypeScript

TypeScript taip pat suteikia galimybę apibrėžti vieną tipinį parametrą, kuris bus apribotas kitu tipiniu parametru. Tai būtina, kai reikia nukopijuoti savybes iš vieno objekto į kita, tuo pačiu apsisaugant nuo perteklinių savybių perdavimo.

Pažvelkime į tokį pavyzdį. Vėl grįžkime prie funkcijos myFunc, apibrėžiančios kintamojo ilgį:

function myFunc <T> (data: T): T { console.log(data.length); // klaida return data; }

Tačiau dabar norime, kad ši funkcija veiktų tik su tais tipais, kurie turi savybę length. Tam sukursime interfeisą ILength, kuriam priskirsime savybę length skaitinio tipo:

interface ILength { length: number; }

Tada mūsų funkcijoje nustatysime bendrinį tipą, kuris paveldi iš ILength naudojant raktinį žodį extends:

function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

Štai kaip atrodo mūsų visas kodas:

interface ILength { length: number; } function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

Patikrinkime mūsų funkcijos veikimą ir rasime eilutės ilgį:

console.log(myFunc('abcde'));

Vykdymo rezultatas:

5 'abcde'

O dabar perduokime parametrą masyvą:

console.log(myFunc(['a', 'b', 'c']));

Vykdymo rezultatas:

3 [ 'a', 'b', 'c' ]
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti