Course 05 · Core
TypeScript
JavaScript, with the mistakes found first.
Types that describe what your code already does — and a compiler that reads them before anyone else has to.
0 of 14 lessons finished — nothing yet
The syllabus
14 lessons,
in the order they build on each other.
Why types
What a type checker is, what it is not, and the one idea the rest depends on.
Running it
tsc, tsconfig, strict, and the difference between compiling and checking.
The basic types
Annotations, inference, literal types, and the difference between any and unknown.
Object types
interface and type, optional and readonly fields, index signatures, excess properties.
Unions and narrowing
One value, several shapes — and how the compiler follows your if statements.
Functions
Parameters, returns, optional arguments, overloads, and what void really means.
Generics
A type that is decided by the caller, with constraints that keep it honest.
Arrays, tuples and as const
readonly arrays, fixed-length tuples, and freezing a literal into a type.
Utility types
Partial, Pick, Omit, Record, keyof and typeof — types derived from what you already have.
Type guards
typeof, instanceof, in, predicates and assertion functions — proving a type at runtime.
Classes and interfaces
Fields, access modifiers, implements, abstract — and when a plain object is better.
Modules and declarations
Importing types, declaration files, and giving an untyped package a shape.
The DOM and events
Typing what comes back from the page, and casting only where you have earned it.
TypeScript in practice
Strictness worth turning on, migrating JavaScript, and the line between types and runtime.
Keep going
The other courses.
HTML
The document, the elements and the meaning behind them. Everything else on the web is layered on top of this.
CSS
Selectors, the box model, layout with flexbox and grid, and motion that has a reason to move.
JavaScript
Values, functions, the DOM, events and asynchronous work — written so you can debug it later.