We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
TypeScript in Practice
About this course
A practical TypeScript course — from “why types at all” to the advanced type system and production setup. Aimed at a developer who already writes JavaScript and wants to add static typing: catch errors before running, get autocompletion and refactoring, document interfaces with types. Knowledge of JavaScript is a prerequisite: TypeScript is a superset of JS, meaning all JS stays valid, with a type system added on top.
The course isn’t about relearning from scratch but about how to think in types. The main idea: types aren’t bureaucracy for the compiler but a design tool. A well-described type makes invalid states unrepresentable, turns a whole class of bugs into editor errors, and serves as living documentation. TypeScript is erased at compile time — at runtime it’s ordinary JavaScript, and types exist only for checking. Understanding this boundary (compile-time checking vs runtime behavior) is the key to the whole course.
Topics build up: basic types and type inference, typing functions, interfaces and object types, union types and narrowing, generics, classes and modules, utility and advanced types (mapped, conditional, template literal), tsconfig configuration and tooling, and the ecosystem. Lessons 9–10 cover real project setup and where to go next.
Each lesson contains theory, code examples, a checklist of practical tasks, and a quiz. Examples are checked by the tsc compiler. It’s most convenient to work in an editor with TS support (VS Code) — half of TypeScript’s value shows up precisely in the hints and errors while you write the code.