tsconfig.json dosyasında "strict": true birden fazla katı kontrol ailesini aynı anda etkinleştirir. Tüm yeni projeler için çokça tavsiye edilir — TypeScript'in önlemek için var olduğu hataları yakalar.
tsconfig.json dosyasında "strict": true birden fazla katı kontrol ailesini aynı anda etkinleştirir. Tüm yeni projeler için çokça tavsiye edilir — TypeScript'in önlemek için var olduğu hataları yakalar.
// 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 en önemlisidir: null/undefined değerlerini diğer türlerden ayırır, böylece derleyici her yerde "eksik olabilir" durumları ele almaya sizi zorlayarak #1 çalışma zamanı hata sınıfını ortadan kaldırır ("cannot read property of undefined").
Tüm bayrakları bir kerede etkinleştirmek yerine (strictNullChecks önce), bayrakları aşamalı olarak açın, hataları dosya dosya düzeltip, büyük bir eski projede her şeyi birden etkinleştirmek yerine.
Strict mode olmadan, TypeScript hala önlemesi gereken çok sayıda güvensiz deseni izin verir (implicit any, kontrol edilmeyen null değerler).
Strict mode TypeScript'in değerinin çoğunu sağladığı yerdir — bunu varsayılan olarak kabul edin ve yalnızca iyi bir nedeni olduğunda bireysel bayrakları gevşetin.