Treci la conținutul principal

Limba pe care o vorbesc API-urile

API-urile schimbă date sub formă de JSON — text precum {"id": 1, "name": "Ana"}. TypeScript nu are nevoie de nicio bibliotecă pentru asta: JSON.stringify transformă o valoare în text JSON, iar JSON.parse transformă textul JSON înapoi într-o valoare. Ambele vin chiar din JavaScript.

O interface descrie forma pe care o aștepți de fiecare parte. Nu există o sintaxă specială pentru redenumirea unui câmp: cheia din JSON este exact numele proprietății, așa cum l-ai scris. Când o cheie trebuie să aibă alt nume, o redenumești manual — fie când construiești obiectul, fie imediat după ce îl analizezi.


De la obiect la JSON

JSON.stringify(value) produce un JSON compact, pentru mașini; JSON.stringify(value, null, 2) îl indentează cu două spații, pentru oameni și pentru jurnale.

O proprietate opțională (scrisă email?: string) care nu a fost niciodată setată este pur și simplu omisă din JSON — nu apare nicio cheie goală.

JSON compact și JSON aranjat frumos

Ana nu are email, așa că cheia email lipsește complet din JSON-ul ei. Înregistrarea completă a lui Ben se afișează indentată.

Prompt
Scrie un program TypeScript cu o interfață UserRecord a cărei proprietate email este opțională. Serializează compact un utilizator fără email și, cu indentare de două spații, un utilizator complet, afișând ambele rezultate JSON.
Ieșire: program TypeScript și rezultatul capturat

De la JSON la obiect

JSON.parse întoarce valoarea analizată, iar as UserRecord îi spune verificatorului de tipuri ce te aștepți să găsești. Un JSON stricat nu întoarce o valoare de eroare — aruncă o excepție, deci învelește apelul în try/catch.

Un lucru de știut: cheile necunoscute nu sunt eliminate. JSON.parse păstrează fiecare cheie conținută de text; interfața descrie doar ceea ce promiți că vei folosi. Când vrei un obiect curat, copiază câmpurile de care ai nevoie.

Analiza textului și cheia în plus

JSON-ul conține o cheie extra pe care interfața nu o menționează niciodată. Nimic nu eșuează — cheia chiar există la rulare, iar copierea celor două câmpuri pe care le vrei dă obiectul curat { id: 7, name: 'Cleo' }. Un JSON stricat aruncă o excepție, iar catch afișează mesajul.

Prompt
Scrie un program TypeScript care analizează un șir JSON ce conține o cheie necunoscută în plus, transformându-l într-un UserRecord, afișează obiectul obținut, apoi afișează o copie curată care păstrează doar id și name. La final, încearcă să analizeze un JSON stricat într-un bloc try/catch și afișează mesajul de eroare.
Ieșire: program TypeScript și rezultatul capturat

Date imbricate

Datele reale trimise de API-uri sunt imbricate: o comandă poartă cu ea utilizatorul și o listă de produse. Obiectele din interiorul obiectelor și tablourile se transformă automat în obiecte și tablouri JSON — nu e nevoie de nicio tratare specială.

O comandă cu un utilizator înăuntru

Obiectul imbricat user devine un obiect JSON imbricat, iar tabloul items devine un tablou JSON — forma datelor este forma JSON-ului.

Prompt
Scrie un program TypeScript cu o interfață OrderRecord care conține un id, un tablou de nume de produse și un UserRecord imbricat. Serializează o comandă cu indentare de două spații și afișeaz-o, ca să se vadă obiectele și tablourile imbricate.
Ieșire: program TypeScript și rezultatul capturat