BACK TO BLOG
TYPESCRIPT 4 min Jan 2026

TypeScript strict mode: the technical debt that pays itself

Why strict flags save more time than they cost.


Every project inheriting "strict": false has the same story: someone turned it off “to move fast” and three years later nobody dares turn it on. The numbers say otherwise.

The real cost of strict: false

Without strictNullChecks, every property access is a gamble. The classic Cannot read properties of undefined isn’t a JavaScript bug — it’s a TypeScript configuration bug. The compiler knew that value could be undefined and you told it not to warn you.

Incremental migration without drama

Don’t flip everything on day one. The order that works:

// 1. Cheapest, highest return
"noImplicitAny": true,
// 2. The production-bug killer
"strictNullChecks": true,
// 3. The rest
"strict": true

Combine it with // @ts-expect-error on existing red spots and one CI rule: zero new errors. Old debt gets paid per touched file, not in a big bang.

The return

In a NestJS backend I migrated, strictNullChecks surfaced 47 potentially-null accesses. Twelve were real bugs reported by users in the previous six months. The compiler had them pinpointed for free — it just needed permission to speak.