JavaScript foundations for TypeScript
A migration-focused route through JavaScript values, object behavior, asynchronous control flow, and the runtime boundaries that static types cannot verify.
24 topics 4 checkpoints about 22 h beginner → intermediate
0 of 24 topics · milestone 1 of 4 Continue: JavaScript fundamentals
The map
done you are here needs the checkpoint before it checkpoint
Milestone 1 · Dynamic values and transformations
0 of 6 topics · about 106 minMilestone 2 · Scope, receivers, and objects
0 of 6 topics · about 99 minMilestone 3 · Asynchronous contracts
0 of 6 topics · about 62 min 1 The event loop 12 min
soon Promises 10 min
soon Promise methods 10 min
soon Async await 10 min
soon Async iterators 10 min
soon Streams 10 min
Checkpoint 3 unlocks M4
Milestone 4 · Migration boundaries and safeguards
0 of 6 topics · about 82 min 1 Modules 18 min 2 Error handling 17 min 3 JSON 17 min
soon Form validation 10 min
soon Vitest 10 min
soon Alpinejs 10 min
Checkpoint 4 done
Why this order: Start with JavaScript values and transformations because TypeScript describes those runtime operations rather than replacing them. Then make scope, receivers, prototypes, and classes explicit before modeling object contracts. Learn promises and streams next so asynchronous return and failure paths are clear. Finish with modules, runtime validation, tests, and a small Alpine.js boundary, where a staged migration needs its strongest safeguards.