Postat acum 1 zi
Strict mode a devenit standardul de facto în 2026. Dacă încă rulezi cu "strict": false, pierzi cel mai ieftin layer de siguranță pe care îl ai.
Ce e "strict" în TypeScript
Activează 7 flags simultan:
noImplicitAnystrictNullChecksstrictFunctionTypesstrictBindCallApplystrictPropertyInitializationalwaysStrictnoImplicitThis
90% din bug-urile "nu știu de ce e null acolo" sunt prinse de strictNullChecks singur.
Cum migrezi un proiect mare
Big-bang nu merge. În schimb:
- Pornești cu
strict: true+noEmitOnError: false - Rulezi
tsc --noEmit→ ai 800 erori. Nu panichează. - Activezi per-fișier: creezi un
tsconfig.strict.jsonși rulezi doar pe fișierele refactorizate recent - Orice fișier nou e obligatoriu în mode strict (linter rule)
- În CI, numărul de erori scade săptămânal — dacă crește, PR-ul e respins
Flags pe care le adaug peste strict
noUncheckedIndexedAccess— acceselearr[0]devinT | undefined, forțează check-uriexactOptionalPropertyTypes— diferență reală întreundefinedși "missing"noImplicitOverride— obligatoriu în clase când supraîncarci o metodă
Rezultatul după 6 luni
Pe un proiect de ~80k linii: -63% bug-uri de runtime, -40% timp pe code review (reviewer nu mai vânează null-uri). Costul: ~3 săptămâni de cleanup inițial.