web · 26 lessons
TypeScript engineering
Learn what the compiler can prove—and where runtime checks begin.
What you are working toward
Design typed contracts, narrow unknown data, and model failure.
0 learning steps complete · View prerequisites and evidence →
The existing foundation
Start here, or use it to fill a gap.
Original lessons, practice, bosses, and progress are preserved. Completion from this journey is distinct from the new independent evidence model.
- 01Why types existGuided foundationOpen →
- 02Primitive typesGuided foundationOpen →
- 03Arrays & objectsGuided foundationOpen →
- 04Typed functionsGuided foundationOpen →
- 05Type aliases & interfacesGuided foundationOpen →
- 06Interfaces & extensionGuided foundationOpen →
- 07UnionsGuided foundationOpen →
- 08NarrowingGuided foundationOpen →
- 09Optional & readonly fieldsGuided foundationOpen →
- 10GenericsGuided foundationOpen →
- 11Utility typesGuided foundationOpen →
- 12Typing async resultsGuided foundationOpen →
- 13React-oriented type mental modelsGuided foundationOpen →
- 14Debugging compiler errorsGuided foundationOpen →
Engineering sequence
Contracts that survive contact with data
- 01A type is a promise; a boundary needs evidenceintermediate · 22 min · predict, experiment, debug, buildunseen
- 02Follow the compiler through a branchintermediate · 20 min · predict, experiment, debug, buildunseen
- 03Compatible shapes, excess properties and shallow readonlyintermediate · 21 min · predict, experiment, debug, buildunseen
Engineering sequence
Programming the type system
- 04Generics preserve relationshipsadvanced · 24 min · predict, experiment, debug, buildunseen
- 05Derive contracts without copying fieldsadvanced · 23 min · predict, experiment, debug, buildunseen
- 06Conditional types are type-level decisionsadvanced · 25 min · predict, experiment, debug, buildunseen
- 07Keep useful literals without making false assertionsadvanced · 23 min · predict, experiment, debug, buildunseen
Engineering sequence
Production TypeScript
- 08A callback must accept everything its caller can sendadvanced · 24 min · predict, experiment, debug, buildunseen
- 09Make failure part of the API contractadvanced · 24 min · predict, experiment, debug, buildunseen
- 10Design away impossible statesadvanced · 25 min · predict, experiment, debug, buildunseen
- 11Type components around ownershipadvanced · 22 min · predict, experiment, debug, buildunseen
- 12Compiler settings are part of architectureproduction · 24 min · predict, experiment, debug, buildunseen