Tutorials
Practical tutorials for the work we actually do. Pick one, read it in order, and apply it.
Set a shared typography base, trace inherited colours and remove a local override without restyling every paragraph.
Trace a reproducible colour and spacing conflict from the rendered result to the winning rule, then verify the repair in the source file.
Build a local form with working labels and a grouped topic choice, then inspect submitted field names without sending a message.
Choose different text alternatives for informative, decorative and linked images, then inspect their names and broken-image behavior.
Build a three-file local site, resolve paths from nested folders and test fragments and deliberate new-tab navigation.
Build a page with named navigation regions and a working skip link, and distinguish page landmarks from an article header.
Install the Node types, turn them on in tsconfig.json, and switch require to import. Also covers the other causes of the same error: a typo, a missing import and a missing lib.
Trace a compiler version mismatch, confirm the resolved package path, and make a project-local check catch a deliberate type error.
Use typeof, in and Array.isArray on three real unions, and avoid the two mistakes that stop narrowing from working. After this, you know which check fits which union.
See the difference between a question mark and a union with undefined, what it does at run time, and what exactOptionalPropertyTypes changes. After this, you can choose the right one for your data.
Read an error in three passes and match the eight most common phrases to their causes, using real tsc output. After this, a wall of errors is a list you can work through.
Let a declared return type find a branch with no return, an arrow function with braces, and an async function typed wrong. After this, a function cannot quietly give back undefined.