Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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