Valorile unui dezvoltator TypeScript

2026-09-10

TypeScript este limbajul meu principal, iar de-a lungul anilor a încetat să fie doar o alegere tehnică și a devenit un set de valori. Nu reguli dintr-un ghid de stil, ci obiceiuri care hotărăsc dacă baza de cod va rămâne ușor de modificat după doi ani și trei colegi noi.

Onestitate înaintea comodității. Modul strict este activ de la primul commit. any este un semnal de eroare, nu un tip; dacă nu cunosc cu adevărat forma datelor, folosesc unknown și îi restrâng tipul. Un tip care minte — un cast as care reduce compilatorul la tăcere — este mai rău decât lipsa tipului, pentru că toți cei din aval au încredere în el. Când compilatorul se plânge, de regulă are dreptate; corecția ține de date, nu de adnotare.

Fă stările imposibile să nu poată exista. În loc de isLoading, isError și data ca trei flaguri care se pot contrazice, folosesc o uniune discriminată: idle, loading, success cu date și error cu motiv. Același principiu se aplică stărilor din domeniu: o comandă plătită are paymentId, una neachitată nu. Un switch cu verificare exhaustivă prin never transformă cazul uitat din incident de producție în linie roșie în editor.

Ai încredere în interior, verifică la granițe. Tipurile dispar la runtime, așa că orice trece o limită — corp HTTP, webhook, formular, localStorage sau răspuns LLM — este analizat cu Zod ori o schemă similară, din care se deduce tipul. O singură sursă de adevăr elimină diferența dintre ce validăm și ce presupunem. În aplicație, datele tipizate circulă fără verificări defensive la fiecare linie.

Împarte contracte, nu presupuneri. Într-un produs full-stack, tipurile API sunt generate sau partajate prin OpenAPI, GraphQL Codegen, Prisma ori un pachet comun. Astfel, redenumirea unui câmp strică buildul, nu checkout-ul. Lizibilitatea contează mai mult decât ingeniozitatea: un interface simplu, înțeles în zece secunde de un coleg nou, valorează mai mult decât un conditional type cu cinci niveluri care demonstrează că am citit manualul. Generics sunt pentru reutilizare, nu pentru etalare.

Tipurile nu înlocuiesc testele, review-ul sau gândirea — le fac pe toate mai ieftine. Aceasta este adevărata valoare a unui dezvoltator TypeScript: nu să cunoască fiecare utility type, ci să lase cod pe care următoarea persoană îl poate modifica în siguranță. Dacă baza ta de cod e plină de any și echipa se teme de refactorizare, trimite-mi modulul pe care nimeni nu vrea să-l atingă. Îți voi arăta cum l-aș tipiza și ce probleme ar detecta asta.

Oferă-i următorului produs cuiva care rămâne.

Ești gata să începem? Trimite-mi un mesaj - pot începe acum și pot rămâne alături de produs. Colaborări pe termen lung, nu o predare în două săptămâni. Să discutăm proiectul, cerințele și cea mai bună cale de urmat.

Întreabă despre experiență sau servicii