The map
- Not started
- In progress
- Done
- Builds on
- 01The compilerChecks, then erases0/3
- 02Modelling dataUnions, the edge types, generics0/3
- 03Types from typeskeyof, mapped, conditional0/1
- 04In a real projectStrictness, declarations, the build, boundaries0/4
- 05Next: system designSame ideas, at service scale
- Contract testingLibrary ↗Types stop at the network. A shared TypeScript type between two services is a hope; a contract test is how the provider proves it still sends that shape.
- Anti-corruption layerLibrary ↗Validate and translate outside data at one edge, so the rest of the code works with your own types: the same idea as parsing JSON at the boundary, for a whole system.
Everything here is about TypeScript 5.x with strict on. The examples have been type-checked with TypeScript 5.9; the js run examples are what the code does after its types are erased. The declarations and build topics build on the JavaScript path's topic on modules.
Where this path leads
- React: how it really renders →What happens between calling setState and seeing pixels: rendering and committing, how React matches trees, why hooks have rules, what effects and memoisation are for, and how transitions, Suspense and Server Components change where and when your components run.
- Node.js: how the server side runs →What happens between your JavaScript and the operating system: the loop's phases, its private queues, the thread pool, streams, and threads of your own.