Typed codebases are a discipline, not a config flag
Enabling strict mode in tsconfig takes thirty seconds. Keeping a codebase honestly typed twelve months later is a different problem entirely — one that has less to do with the compiler and more to do with what a team is willing to reject in review.
The failure mode we see most often isn't missing types, it's dishonest ones: `any` renamed to a type alias, `as` casts smoothing over a shape mismatch, optional chaining papering over a null case that should have been handled. None of it fails the build. All of it erodes the thing types were supposed to buy you.
What actually holds the line is a review habit: every `as` and every `any` gets a comment explaining why, or it gets fixed instead. That single rule catches most of the drift before it compounds.