Syllabus & Study Plan

This page sets out what the TypeScript course covers, what you should be able to do at the end of it, and a suggested eight-week schedule. Adjust the pace to suit you — the order matters more than the speed.

Who this course is for

Developers who already write JavaScript — variables, functions, arrays, objects, classes and promises — and want to use TypeScript in real projects. No previous experience with typed languages is needed. If JavaScript itself is new to you, complete the JavaScript course first.

Learning outcomes

By the end of the course you will be able to:

  1. Set up a TypeScript project, configure tsconfig.json, and compile, run and type-check code.
  2. Describe data precisely with primitive types, arrays, tuples, object types, interfaces, enums and literal unions.
  3. Handle null, undefined and untrusted data safely using narrowing, type guards and runtime validation.
  4. Write typed functions, overloads and classes, including inheritance, abstract classes and access modifiers.
  5. Build reusable, type-safe code with generics, constraints and the built-in utility types.
  6. Derive new types from existing ones with keyof, typeof, indexed access, mapped, conditional and template literal types.
  7. Organise code with modules, use and write declaration files, and extend third-party types.
  8. Apply TypeScript to Node.js and React projects, with linting, formatting and testing.
  9. Migrate an existing JavaScript codebase to TypeScript incrementally.

Course outline

PartLessonsFocus
1. Getting Started01–05Setup, basic types, inference, special types
2. Shaping Data06–14Arrays, tuples, objects, interfaces, enums, literals, unions, null handling, assertions
3. Functions & Classes15–19Functions, overloads, classes, inheritance, getters/setters, statics
4. Generics & Type-Level Code20–30Generics, narrowing, guards, keyof, utility, mapped, conditional and template literal types
5. Organizing Code31–35Modules, namespaces, declaration files, merging, decorators
6. TypeScript in Practice36–45Async, errors, tsconfig, Node.js, React, tooling, JSDoc, migration, recent versions, best practices

Eight-week study plan

Plan on three to five hours a week. Each week ends with a checkpoint: if you can do it comfortably, move on; if not, revisit the lessons listed.

Week 1 — First steps

Lessons 01–05. Install TypeScript locally and get your editor showing errors.

Checkpoint: explain the difference between any and unknown, and convert a small JavaScript file to TypeScript with no errors under strict.

Week 2 — Describing data

Lessons 06–10: arrays, tuples, object types, interfaces and enums.

Checkpoint: model a small domain (for example, a library with books, members and loans) with interfaces and type aliases.

Week 3 — Precise types

Lessons 11–14: literal types, unions, intersections, null handling and assertions.

Checkpoint: replace every string status field in your week 2 model with a literal union, and handle optional data with ?. and ??.

Week 4 — Functions and classes

Lessons 15–19.

Checkpoint: build a Library class with private state, a getter for available books and a static factory method.

Week 5 — Generics and narrowing

Lessons 20–25.

Checkpoint: write generic groupBy and pluck helpers, and a discriminated union with an exhaustive switch. Fill-in exercises from the "Generics" section of the exercises page.

Week 6 — Type-level programming

Lessons 26–30.

Checkpoint: derive "create" and "update" input types from a main model using Omit and Partial, and write one mapped type of your own.

Week 7 — Organising real code

Lessons 31–38: modules, declaration files, decorators, async code, error handling and configuration.

Checkpoint: split your project into modules, add a typed async data loader that validates its input, and explain each option in your tsconfig.json.

Week 8 — TypeScript in the real world

Lessons 39–45.

Final project: build a small app of your choice — a Node.js REST API or a React front end — with strict mode, linting and at least a few tests. Then take the quiz and aim for 25 out of 30 or better.

Faster tracks

  • Two-week intensive (about 15 hours a week): weeks 1–4 in the first week, weeks 5–8 in the second.
  • Already using TypeScript? Take the quiz first, then read only the lessons behind the questions you missed — typically Part 4 and lessons 37–45.
  • React developers in a hurry: lessons 01–09, 11–13, 15, 20, 22–23, 26 and 40.