Stack · Language
TypeScript — types as design, not decoration
EcosystemTypeScript
TypeScript is the default for everything I write — apps, libraries and the scripts around them. Every library I publish ships its own types.
Why I use it
The value isn't catching typos; a test suite does that. It's that designing the types forces the modelling decision to the front, where it's cheap. A union of valid states rules out the impossible combinations that otherwise become runtime bugs six months later. Strict mode from the first commit, too — retrofitting it onto a codebase that grew up loose is a project of its own.
What I've built with it
- Style types inferred per primitive in Inertia, so Motion.View takes ViewStyle and Motion.Text takes TextStyle — passing the wrong one fails at compile time
- Strict types on every prop and theme token across Root Native UI's 28 components
- Shared types between a Node API and its React client, so a response shape change breaks the build instead of the app
- Migrating JavaScript codebases to TypeScript incrementally, module by module, rather than in one unmergeable branch
Alongside
Rest of the stack
Got a project that needs TypeScript?
Get in touch →