All glossary terms
Optimize

TypeScript strict mode

TypeScript's strict mode enables a bundle of compiler flags that produce stricter type checking, noImplicitAny, strictNullChecks, strictFunctionTypes, strictBindCallApply, alwaysStrict, strictPropertyInitialization, noImplicitThis. Enabling strict eliminates entire categories of runtime bugs at compile time by forcing engineers to handle null/undefined explicitly.

Strict mode is the single highest-leverage TypeScript configuration choice. The 'strictNullChecks' alone catches more bugs than any other lint rule because most JavaScript bugs are 'Cannot read property X of undefined'. The cost is upfront: enabling strict on a non-strict codebase surfaces hundreds or thousands of errors that must be fixed before the build passes. The pragmatic migration path: enable strict on new files via override, then per-folder via a directory tsconfig, then globally. Once strict is in place, the type system is doing real work and refactoring becomes dramatically less risky.