Treci la conținutul principal

Tablouri în TypeScript

TypeScript are o sintaxă specială pentru a da tip tablourilor: scrie tipul elementelor urmat de [].

Dacă tablourile sunt ceva nou pentru tine, citește mai întâi despre tablourile din JavaScript.

Exemplu

names este de tip string[], deci acceptă șiruri de caractere, dar adăugarea unui număr ar fi o eroare.

Prompt
Arată sintaxa pentru declararea tipului unui tablou de șiruri de caractere. Declară o constantă goală names cu tipul string[], adaugă "Dylan" cu push (fără eroare) și păstrează un names.push(3) comentat, însoțit de un comentariu care explică de ce ar eșua: un număr nu poate fi atribuit tipului string. Nu se afișează nimic.
Ieșire: program TypeScript și rezultatul capturat

Readonly

Cuvântul cheie readonly împiedică modificarea unui tablou după ce a fost creat.

Exemplu

Pentru că names este readonly string[], metodele care îl modifică, precum push, nu există pe el — apelarea uneia dintre ele este o eroare de compilare.

Prompt
Arată că modificatorul readonly împiedică modificarea unui tablou. Declară names ca readonly string[] conținând ["Dylan"], apoi apelează names.push("Jack") — compilatorul trebuie să raporteze "Property 'push' does not exist on type 'readonly string[]'". Adaugă un comentariu care îl invită pe cititor să elimine readonly și să încerce din nou.
Ieșire: program TypeScript și rezultatul capturat

Deducerea tipului

Dacă un tablou are valori în momentul creării, TypeScript îi poate deduce (determina) tipul din ele.

Exemplu

Tipul lui numbers este dedus ca number[]. Adăugarea altui număr este în regulă, dar adăugarea unui șir de caractere este o eroare, iar citirea lui numbers[0] dă un number.

Prompt
Arată cum TypeScript deduce tipul number[] pentru un literal de tablou și cum îl impune. Declară numbers = [1, 2, 3] fără adnotare de tip, adaugă 4 cu push (fără eroare), apoi adaugă șirul "2" — acea linie trebuie să eșueze cu "Argument of type 'string' is not assignable to parameter of type 'number'". La final, atribuie numbers[0] unei variabile head de tip number (fără eroare).
Ieșire: program TypeScript și rezultatul capturat