Modern JavaScript Array Methods in 45 Minutes
by Marcus Hale
Turn on strict mode in a real codebase without drowning in thousands of new errors.
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.
4 modules · 9 lessons · 1h 14m of material
2 lessons running 16m 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.
3 lessons running 26m 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.
2 lessons running 16m 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.
2 lessons running 16m 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.
4 modules · 9 lessons
1h 14m total length
Short list, and deliberately so. If you meet these you can start today.
Enabling strict in an existing tsconfig usually produces a wall of errors, a quick revert and a promise to do it later. This mini-course gives you the staged approach that actually finishes, and it takes about an hour.
Strict mode is not one switch, it is eight. You will enable them one at a time in the order that produces the fewest cascading errors: noImplicitAny, strictNullChecks, strictFunctionTypes, strictBindCallApply, strictPropertyInitialization, noImplicitThis, useUnknownInCatchVariables and alwaysStrict. Each lesson explains what the flag catches, shows the error patterns it produces and gives a mechanical fix for each pattern.
The last two lessons cover the surrounding strategy: using include and exclude plus per-directory configs to migrate a subtree at a time, adding a ratchet in continuous integration so the error count can only fall, and the related flags worth adopting next, noUncheckedIndexedAccess, exactOptionalPropertyTypes and noImplicitOverride, with a realistic assessment of the effort each demands.
Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.
Reviews are written by people who bought this course. We publish the critical ones too.
5.0
Rated 5.0 out of 5Course rating · 2 reviews
Emily Carrington
Frontend lead
Turning strict on across four hundred files used to mean a branch nobody would ever review. Enabling one flag at a time, recording the error count and failing the build only when it climbs got us to full strict over six weeks with no big-bang pull request. That approach is worth far more than nine pounds.
Tomás Herrera
TypeScript developer
I had been treating strict as a single switch and losing to it repeatedly. Breaking it into the eight underlying options, then sequencing those from least painful to worst, is such an obvious framing and nobody else seems to bother.
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