⊗tsSpGnTV 30 of 37 menu

Variabile de tip în TypeScript

Pentru o mai bună înțelegere a conceptului de generice să ne creăm prima funcție - funcția-identitate. O astfel de funcție returnează exact ceea ce i-a fost transmis - cu același tip.

Să scriem mai întâi variantele funcției noastre separat.

Să scriem o funcție care acceptă ca parametru un număr și returnează un număr:

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

Acum să scriem o funcție care acceptă ca parametru un șir de caractere și returnează un șir de caractere:

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

Să presupunem acum că vrem să facem astfel încât toate acestea să fie făcute de o singură funcție. Adică noi vrem să efectuăm generalizarea.

Pentru aceasta vom folosi o variabilă de tip, care păstrează în sine tipul de date. O astfel de variabilă este declarată în paranteze unghiulare înaintea parantezelor rotunde cu parametrii funcției. Să declarăm o astfel de variabilă, dându-i numele T (poate fi orice):

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

După aceasta, vom avea variabila T, care poate fi folosită pentru a pune în ea tipul parametrului, apoi îl putem indica ca tip de returnare a valorii.

Să indicăm parametrului nostru tipul sub forma variabilei noastre:

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

Se va obține că parametrul poate fi transmis în orice tip, iar acest tip va fi salvat în variabila noastră T.

Acum să folosim valoarea variabilei T ca indicație a rezultatului funcției:

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

Acum se va obține că tipul rezultatului funcției va fi obținut din tipul parametrului. Să verificăm.

Să apelăm funcția cu un număr:

console.log( func(3) ); // va afișa 3

Să apelăm funcția cu un șir de caractere:

console.log( func('x') ); // va afișa 'x'

Realizați o funcție care acceptă ca parametru fie două numere, fie două șiruri de caractere. Ca rezultat, funcția ar trebui să returneze suma parametrilor.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge