⊗tsSpGnTV 30 of 37 menu

Generične spremenljivke v TypeScript

Za boljše razumevanje koncepta generikov ustvarimo našo prvo funkcijo - identitetno funkcijo. Takšna funkcija vrne točno to, kar je bila posredovana - z enakim tipom.

Za začetek napišimo različice naše funkcije ločeno.

Napišimo funkcijo, ki kot parameter sprejme število in vrne število:

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

Zdaj napišimo funkcijo, ki kot parameter sprejme niz in vrne niz:

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

Recimo, da zdaj želimo, da vse to opravlja ena funkcija. To pomeni, da želimo izvesti posploševanje.

Za to uporabimo generično spremenljivko, ki shrani tip podatkov. Taka spremenljivka se deklarira v kotnih oklepajih pred okroglimi oklepaji s parametri funkcije. Deklarirajmo tako spremenljivko in ji dajmo ime T (lahko poljubno):

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

Po tem bomo imeli na voljo spremenljivko T, ki jo lahko uporabimo, da vanjo shranimo tip parametra, nato pa ga določimo kot vrnitveni tip.

Določimo našemu parametru tip v obliki naše spremenljivke:

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

Izkazalo se bo, da je parameter lahko posredovan v poljubnem tipu in ta tip bo shranjen v našo spremenljivko T.

Zdaj uporabimo vrednost spremenljivke T za določitev rezultata funkcije:

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

Zdaj se bo izkazalo, da bo tip rezultata funkcije izhajal iz tipa parametra. Preverimo.

Pokličimo funkcijo s številom:

console.log( func(3) ); // izpiše 3

Pokličimo funkcijo z nizom:

console.log( func('x') ); // izpiše 'x'

Ustvarite funkcijo, ki kot parameter sprejme bodisi dve števili, bodisi dva niza. Funkcija mora vrniti vsoto parametrov.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni