"strict": true в tsconfig.json включает семейство более строгих проверок одновременно. Это настоятельно рекомендуется для всех новых проектов — он перехватывает ошибки, которые TypeScript существует для предотвращения.
"strict": true в tsconfig.json включает семейство более строгих проверок одновременно. Это настоятельно рекомендуется для всех новых проектов — он перехватывает ошибки, которые TypeScript существует для предотвращения.
// 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 — главный: он отделяет null/undefined от других типов, поэтому компилятор заставляет вас обрабатывать "может отсутствовать" везде — устраняя класс ошибок #1 во время выполнения ("cannot read property of undefined").
Включайте флаги постепенно (strictNullChecks первым), исправляйте ошибки файл за файлом, вместо того чтобы включать всё сразу на большом legacy-проекте.
Без strict mode TypeScript всё ещё позволяет многие опасные паттерны, которые он должен предотвращать (неявный any, непроверенные null).
Strict mode — это то место, где TypeScript предоставляет большую часть своей ценности — относитесь к нему как к стандарту и ослабляйте отдельные флаги только с хорошей причиной.