2025-06-21 · TypeScript
Narrow unknown safely after JSON.parse
Move from unknown to a trusted type without casting your way past the compiler.
Introduction
Shows a small type guard builder that validates structure at the boundary, so runtime data stops sneaking into your domain types as any.
What usually goes wrong
Teams that skip this step tend to share three failure modes:
- Optimizing a number nobody agreed to move.
- Copying a setup from a project with different constraints.
- Deferring the decision until it is expensive to reverse.
How to approach it
- State the problem in one sentence, in the words your users would use.
- Pick a signal you can measure weekly, not just at launch.
- Timebox a small trial; a two-day spike beats a two-week debate.
Wrap-up
If TypeScript taught us anything, it is that boring consistency beats clever one-offs. Bring the lessons back to your team before they fossilize into folklore.