Groundwork
step 1 of 2

How much TypeScript do you already have?

Be honest — nobody is watching. This only decides which chapters come first; every chapter stays open to you either way.

Not sure? Start at Beginner — every path opens at the section people usually skip.

Full syllabus

Everything each level eventually covers — ticked sections are written, the rest are still on the desk.

Beginner0 / 8 sections written
  • Setup & the compilercoming soon

    tsc, tsconfig.json basics, strict mode (surface level) · ts-node and running TypeScript directly

  • Basic typescoming soon

    Primitives, arrays, tuples · any, unknown, never — and why they're different · Type inference: when you don't need to annotate

  • Functionscoming soon

    Parameter and return types, optional and default params · Function overloads (surface level)

  • Object shapes, readonly, optional properties · interface vs type — when it matters

  • Union & intersection types, basic usage

  • Enums & literal typescoming soon

    Enums, const enums, string/number literal types

  • Classes in TypeScriptcoming soon

    Access modifiers, readonly fields · implements, abstract classes (surface level)

  • Typing DOM APIs, event handlers · Typing JSON data, JSON.parse and unknown

Checkpoint: you can add TypeScript to a small JS project, type its functions and objects, and get real compiler errors instead of runtime surprises.

Intermediate0 / 11 sections written

Checkpoint: you can design a generic, narrowed, well-typed module that a teammate can use without reading its implementation.

Advanced0 / 10 sections written

Checkpoint: you can design a small type-safe library with conditional/mapped types, explain a gnarly inference error, and defend a migration plan from JS to TS.

Three honest notes
  • Narrowing and discriminated unions are where most people actually start writing idiomatic TypeScript instead of fighting the compiler — they sit early in intermediate on purpose.
  • Utility and mapped types get asked about constantly in interviews, but they only click once generics already do — that's why generics comes first.
  • The compiler API and migrating a real JS codebase are the deepest, least-common layer — most working TS developers never touch them, but the advanced tier doesn't skip them.