Vedonyx

Vedonyx JournalDev & Engineering

Why You Must Turn On TypeScript Strict Mode Today

June 18, 2025

6 min read

Why You Must Turn On TypeScript Strict Mode Today

Running TypeScript without strict mode is like buying a Ferrari and putting bicycle tires on it. An argument for maximal type safety.

The Illusion of Safety

Many teams adopt TypeScript to stop runtime errors, but leave `strict: false` in their `tsconfig.json` because strict mode is 'too annoying' or 'slows down development.'

This is a massive mistake. TypeScript without strict mode provides the illusion of safety while leaving massive holes in your application logic. You are doing all the work of writing types without reaping the actual benefits.

The Magic of `strictNullChecks`

The single most important flag within strict mode is `strictNullChecks`.

Without it, TypeScript assumes that `null` or `undefined` can be assigned to absolutely anything. A variable typed as `User` could actually be `undefined`, and the compiler will happily let you call `user.firstName`, resulting in a catastrophic runtime crash.

When you enable `strictNullChecks`, you force the developer to explicitly handle the case where data might not exist. It forces you to write defensive code.

Modern Stack Architecture Diagram

01 // FRONTEND LAYER
React & Next.js

Server-side rendering, static site generation, and optimized client delivery.

02 // MICROSERVICES
Node & Edge

Scalable microservices and edge computing for minimal latency worldwide.

03 // DATA LAYER
PostgreSQL

Relational robustness paired with Redis caching layers for speed.

'Any' is the Enemy

Strict mode also enforces `noImplicitAny`. When a developer is lazy and doesn't know how to type a complex payload, the default behavior in non-strict TS is to silently assign it the `any` type.

Using `any` effectively turns off TypeScript for that variable. It is a virus that spreads through your codebase. If a function returns `any`, the variable that receives it becomes `any`, and the safety net disintegrates.

The Migration Path

If you have a massive legacy codebase, turning on strict mode all at once will generate 4,000 errors and your team will revolt.

Instead, use a gradual migration tool (like `tsc-strict`) or enable specific flags one by one. Start with `noImplicitAny`, fix the errors over a sprint. Then enable `strictNullChecks`. It is painful in the short term, but the resulting drop in production bugs is worth every hour spent.

#TypeScript#Engineering#Code Quality#Best Practices

Never miss an insight.

Join 15,000+ leaders getting our latest technical strategies.