Treci la conținutul principal

Funcții în TypeScript

TypeScript are propria sintaxă pentru a atribui tipuri parametrilor unei funcții și valorilor returnate de ea.

Această pagină se bazează pe funcțiile obișnuite din JavaScript, așa că asigură-te mai întâi că știi cum funcționează acelea.


Tipul returnat

Poți preciza tipul valorii pe care o returnează o funcție scriindu-l după lista de parametri.

Notă: Dacă nu scrii un tip returnat, TypeScript încearcă să îl deducă — ghicește tipul din valorile pe care le returnează funcția.

Exemplu

Secvența : number de după paranteze spune că getTime returnează un număr.

Prompt
Arată cum se declară explicit tipul returnat de o funcție. Scrie o funcție getTime adnotată să returneze number, al cărei corp returnează new Date().getTime(), cu un comentariu care explică adnotarea : number. Exemplul doar declară funcția și nu afișează nimic.
Ieșire: program TypeScript și rezultatul capturat

Tipul returnat void

Folosește tipul void pentru a spune că o funcție nu returnează nicio valoare.

Exemplu

Prompt
Arată tipul returnat void pentru o funcție care nu returnează nimic. Scrie o funcție printHello adnotată ca returnând void, al cărei corp afișează în consolă „Salut!”. Doar declară funcția; nu o apela, astfel încât să nu se afișeze nimic.
Ieșire: program TypeScript și rezultatul capturat

Parametri

Parametrii unei funcții primesc tipuri cu aceeași sintaxă ca declarațiile de variabile: două puncte și tipul, după nume.

Notă: Dacă un parametru nu are tip, TypeScript revine la any — cu excepția cazului în care poate găsi tipul în altă parte, așa cum se arată mai jos în secțiunile Parametri impliciți și Alias de tip.

Exemplu

Prompt
Arată cum primesc parametrii unei funcții adnotări de tip. Scrie o funcție multiply cu doi parametri de tip number, a și b, care returnează produsul lor, lăsând TypeScript să deducă tipul returnat. Exemplul doar declară funcția și nu afișează nimic.
Ieșire: program TypeScript și rezultatul capturat

Parametri opționali

În mod implicit, TypeScript tratează fiecare parametru ca fiind obligatoriu. Poți marca un parametru ca opțional adăugând ? după numele lui.

Exemplu

Semnul ? îl face pe c opțional, așa că add poate fi apelată cu doi sau trei argumente.

Prompt
Arată cum se marchează un parametru al unei funcții ca opțional cu ?. Scrie o funcție add cu parametrii obligatorii de tip number a și b și un parametru opțional de tip number c, care returnează a + b + (c || 0), cu un comentariu care explică semnul ?. Exemplul doar declară funcția și nu afișează nimic.
Ieșire: program TypeScript și rezultatul capturat

Parametri impliciți

Pentru un parametru cu o valoare implicită, scrie valoarea implicită după adnotarea de tip.

TypeScript poate deduce tipul parametrului și doar din valoarea implicită.

Exemplu

exponent are tipul number și ia implicit valoarea 10 atunci când nu se transmite nicio valoare.

Prompt
Arată un parametru care are atât o adnotare de tip, cât și o valoare implicită. Scrie o funcție pow cu un parametru value de tip number și un parametru exponent de tip number care ia implicit valoarea 10, returnând value ** exponent. Exemplul doar declară funcția și nu afișează nimic.
Ieșire: program TypeScript și rezultatul capturat

Parametri numiți

Parametrii numiți — valori extrase dintr-un singur argument de tip obiect — primesc tipuri la fel ca parametrii obișnuiți: tipul se scrie după tiparul de destructurare.

Exemplu

Prompt
Arată cum se atribuie tipuri parametrilor numiți (destructurați). Scrie o funcție divide care destructurează dividend și divisor dintr-un singur parametru de tip obiect, cu tipul { dividend: number, divisor: number }, și returnează dividend / divisor. Exemplul doar declară funcția și nu afișează nimic.
Ieșire: program TypeScript și rezultatul capturat

Parametri rest

Un parametru rest adună toate argumentele suplimentare. Primește tip ca un parametru obișnuit, dar tipul trebuie să fie un tablou, pentru că un parametru rest este întotdeauna un tablou.

Exemplu

...rest are tipul number[], așa că fiecare argument suplimentar trebuie să fie un număr.

Prompt
Arată cum se atribuie unui parametru rest un tip de tablou. Scrie o funcție add cu parametrii a și b de tip number, plus un parametru rest ...rest de tip number[], care returnează a + b plus suma elementelor din rest, calculată cu reduce. Exemplul doar declară funcția și nu afișează nimic.
Ieșire: program TypeScript și rezultatul capturat

Alias de tip

Tipul unei funcții poate fi scris separat de funcția însăși, folosind un alias de tip.

Aceste tipuri arată ca niște funcții săgeată: parametrii în paranteze, apoi => și tipul returnat.

Exemplu

Pentru că negateFunction are tipul Negate, parametrul său value primește automat tipul number.

Prompt
Arată un tip de funcție definit separat, printr-un alias de tip. Declară un alias de tip Negate pentru o funcție care primește un number și returnează un number, apoi atribuie funcția săgeată (value) => value * -1 unei constante negateFunction de tip Negate, cu un comentariu care precizează că value își primește tipul din alias. Exemplul doar declară funcția și nu afișează nimic.
Ieșire: program TypeScript și rezultatul capturat