Strict mode enables a set of type-checking options that catch more potential errors, including strict null checks and implicit any errors.
TypeScript's strict mode is a compiler option that enables a group of strict type-checking flags. Setting "strict": true in tsconfig.json is equivalent to enabling all of these individual flags.
strictNullChecks: null and undefined are only assignable to themselves and any (plus undefined to void). This catches many common bugs where you forget to handle null cases.
noImplicitAny: Raises an error on expressions and declarations with an implied 'any' type. Forces you to be explicit about types.
strictFunctionTypes: Enables stricter checking of function types. Makes function parameter types contravariant instead of bivariant.
strictBindCallApply: Ensures bind, call, and apply methods on functions are invoked with the correct argument types.
strictPropertyInitialization: Ensures class properties are initialized in the constructor. Prevents accessing undefined properties.
noImplicitThis: Raises an error on 'this' expressions with an implied 'any' type.
alwaysStrict: Parses in strict mode and emits "use strict" for each source file.
Using strict mode from the start of a project is recommended. It catches many bugs at compile time and leads to more robust, self-documenting code. Migrating an existing codebase to strict mode can be done incrementally by enabling individual flags.
Strict mode enables a set of type-checking options that catch more potential errors, including strict null checks and implicit any errors.
Join our network of elite AI-native engineers.