Modern JavaScript Array Methods in 45 Minutes
by Marcus Hale
Design types that make invalid states unrepresentable and errors readable again.
MH Created by Marcus Hale
Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.
8 modules · 88 lessons · 11h 46m of material
14 lessons running 1h 52m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
11 lessons running 1h 28m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
13 lessons running 1h 44m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
14 lessons running 1h 52m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
9 lessons running 1h 10m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
10 lessons running 1h 20m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
11 lessons running 1h 28m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
6 lessons running 48m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
8 modules · 88 lessons
11h 46m total length
Short list, and deliberately so. If you meet these you can start today.
Once you are past annotations, TypeScript becomes a design tool. The question stops being how to type this function and becomes how to shape types so that the wrong call does not compile. This course is about that shift, and about the machinery required to pull it off without producing types nobody else can read.
Generics are covered thoroughly: type parameters and inference, constraints, defaults, generic classes and hooks, and the variance rules that explain why a seemingly correct assignment is rejected. Then come the type-level operators that do the real work, conditional types, mapped types, key remapping, template literal types, infer, and the utility types you should stop reimplementing. Discriminated unions get their own module because they solve more real problems than any other single technique.
The applied modules cover validating external data with Zod and deriving types from schemas rather than duplicating them, typing React components including generic components and polymorphic props, building a typed API client whose routes and payloads stay in sync, declaration files, module augmentation, and type-level testing with expect-type. A dedicated module covers reading catastrophic error messages and reducing them to the one line that matters.
Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.
Nobody has reviewed this course yet, so there is no score to show. Buy it, work through it, and your review could be the one that helps the next developer decide.
Web engineer and JavaScript educator
Marcus has shipped front ends for two ad-tech startups and one very large retailer, which taught him more about performance budgets than any blog post could. He teaches JavaScript and TypeScript from the runtime up — event loop first, framework second — then follows the same code through Node on the server side. Every one of his courses ends with a deployed application rather than a folder of exercises. He writes a weekly newsletter on browser performance.
One-time payment · lifetime access