⊗tsSpGnPTL 36 of 37 menu

Tipisku parametru izmantošana ierobežojumos ģenerikos TypeScript

TypeScript ir arī iespēja deklarēt vienu tipa parametru, kas tiks ierobežots ar citu tipa parametru. Tas ir nepieciešams, kad nākas kopēt īpašības no viena objekta otrā, vienlaikus pasargājoties no tā, ka mēs nepadosim nevajadzīgu īpašību.

Apskatīsim šādu piemēru. Atgriezīsimies pie funkcijas myFunc, kas nosaka mainīgā garumu:

function myFunc <T> (data: T): T { console.log(data.length); // kļūda return data; }

Tomēr tagad mēs vēlamies, lai šī funkcija strādātu tikai ar tiem tipiem, kuriem ir īpašība length. Lai to izdarītu, izveidosim interfeisu ILength, kuram piešķirsim īpašību length skaitliskā tipā:

interface ILength { length: number; }

Tālāk mūsu funkcijā iestatīsim vispārīgo tipu, kas manto no ILength izmantojot atslēgvārdu extends:

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

Šādi izskatās mūsu pilnais kods:

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

Pārbaudīsim mūsu funkcijas darbību un atradīsim virknes garumu:

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

Izpildītā koda rezultāts:

5 'abcde'

Un tagad padodam parametrā masīvu:

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

Izpildītā koda rezultāts:

3 [ 'a', 'b', 'c' ]
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt