⊗tsSpGnTV 30 of 37 menu

Tüüpilised muutujad TypeScriptis

Geneerikute kontseptsiooni paremaks mõistmiseks loome oma esimese funktsiooni - identiteedifunktsiooni. Selline funktsioon tagastab täpselt selle, mis sellele anti - sama tüübiga.

Alustuseks kirjutame oma funktsiooni variandid eraldi.

Kirjutame funktsiooni, mis võtab parameetrina numbri ja tagastab numbri:

function func(data: number): number { return data; }

Nüüd kirjutame funktsiooni, mis võtab parameetrina stringi ja tagastab stringi:

function func(data: string): string { return data; }

Oletame nüüd, et tahame, et seda kõike teeks üks funktsioon. See tähendab, et me soovime teha üldistamist.

Selleks kasutame tüüpilist muutujat, mis salvestab endasse andmetüübi. Selline muutuja deklareeritakse nurksulgudes enne funktsiooni parameetritega ümaraid sulgusid. Deklareerime sellise muutuja, andes sellele nimeks T (võib olla suvaline):

function func <T>(siin parameetrid) { return data; }

Pärast seda on meil muutuja T, mida saab kasutada parameetri tüübi sisestamiseks ja seejärel määrata seda tagastatava väärtusena.

Määrame oma parameetri tüübiks meie muutuja:

function func <T>(data: T) { return data; }

Selgub, et parameetri saab edastada mis tahes tüübiga ja see tüüp salvestub meie muutujasse T.

Nüüd kasutame muutuja T väärtust funktsiooni tulemuse määramiseks:

function func <T>(data: T): T { return data; }

Nüüd saab, et funktsiooni tulemi tüüp saadakse parameetri tüübist. Kontrollime.

Kutsume funktsiooni numbriga:

console.log( func(3) ); // väljastab 3

Kutsume funktsiooni stringiga:

console.log( func('x') ); // väljastab 'x'

Tehke funktsioon, mis võtab parameetrina kas kaks numbrit või kaks stringi. Funktsioon peab tagastama parameetrite summa.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu