"strict": true në tsconfig.json aktivizon një familje kontrollesh më të rrepta në të njëjtën kohë. Rekomandohet fuqimisht për të gjithë projektët e rinj — ai kap gabimet që TypeScript ekziston për të parandaluar.
// strictNullChecks — null/undefined are no longer assignable to everything
let name: string = null; // ❌ Error (without strict this compiles, then crashes)
function f(u?: User) { u.name; } // ❌ u is possibly undefined → forces a check
// noImplicitAny — parameters with no inferable type must be annotated
function g(x) {} // ❌ Error: 'x' implicitly has type 'any'
// strictPropertyInitialization — class fields must be initialized
class C { name: string; } // ❌ must init in constructor or mark optional
strictNullChecks është ai i madh: ndan null/undefined nga llojet e tjera, kështu që kompajleri të detyron të trajtosh "mund të mungojë" kudo — duke eleminuar klasën #1 të gabimeve në runtime ("cannot read property of undefined").
Aktivizoni flamujt gradualisht (strictNullChecks i pari), korrigjoni gabimet skedar pas skedari, në vend që të aktivizoni gjithçka në të njëjtën kohë në një projekt të madh të trashëgimit.
Pa strict mode, TypeScript prapë lejon shumë nga patronet e pasigurta që synon të parandalojë (implicit any, nulls të pakontrolluar).
Strict mode është ku TypeScript ofron shumicën e vlerës së tij — përshkruajeni si standard dhe vetëm lehtësoni flamujt individualë me arsye të mirë.