STAGE 01 LESSONS 01–07
Foundations
Learn the JavaScript you need and write your first strict TypeScript program.
Start stageFREE COURSE / TYPESCRIPT 7
Learn how JavaScript runs and how TypeScript checks your code. Then build, test, and package software you can maintain.
Free to read. No account needed.
type Job =
| { state: "queued"; id: string }
| { state: "done"; result: string };
function describe(job: Job) {
if (job.state === "done") {
return job.result; // narrowed to string
}
return `Waiting: ${job.id}`;
}
Predict the type.
Check the code.
Run the JavaScript.
YOUR LEARNING PATH
Write your first program, learn the type system, then build applications and libraries. Each stage ends with a project.
STAGE 01 LESSONS 01–07
Learn the JavaScript you need and write your first strict TypeScript program.
Start stageSTAGE 02 LESSONS 08–17
Use inference, narrowing, and generics to describe your data.
Start stageSTAGE 03 LESSONS 18–25
Work with APIs, async resources, runtime validation, and tests.
Start stageSTAGE 04 LESSONS 26–31
Design public APIs, publish packages, and manage a growing codebase.
Start stageSTAGE 05 LESSONS 32–36
Choose types and tools that keep your software easy to change.
Start stageTYPES AND RUNTIME
Let TypeScript infer what it can. Use unions to describe valid states, and validate external data before you trust it.
Learn runtime validationTHE FINAL PROJECT
A CLI, HTTP API, async executor, persistence, cancellation, and a reusable package. Build it in stages and test each part.
View the project