Zod lesson tied it together
Validating at the edges and inferring types from schemas is now how our team handles every API call.
Browse
Go from plain JavaScript to confident TypeScript: inference, unions, narrowing, generics, utility types and a strict project setup
Created by Tomas Lindqvist
TypeScript adds a type system on top of JavaScript. It catches mistakes while you type, makes editors smarter and turns large codebases from scary into manageable. Most new JavaScript projects at companies of every size now start in TypeScript, and many libraries ship their own types.
Many developers learn TypeScript by fighting the compiler until the red lines go away. This course takes a different route. We focus on how the type system thinks, so you write types that describe your data accurately and let inference do most of the work.
Lessons are short and code heavy. Each one has small exercises you complete in the TypeScript playground or the course repository, with failing type checks you need to fix. In the final section we migrate a real looking JavaScript project to TypeScript one file at a time.
You should be comfortable with modern JavaScript, including arrow functions, destructuring, modules and promises.
JavaScript and TypeScript teacher focused on fundamentals that last longer than frameworks
I have written JavaScript for browsers and servers for a long time, and I still think the language itself is the best investment a web developer can make. Frameworks change every few years. Closures, the event loop and a good type system do not.
I teach in small steps with lots of short exercises. Every lesson ends with something you can run in the browser console or in Node, so you never have to take my word for it.
When I am not recording, I maintain internal tooling and libraries written in TypeScript, and I spend more time than I should reading the ECMAScript proposals list.
Validating at the edges and inferring types from schemas is now how our team handles every API call.
Learning to hover and read inferred types changed everything. I write fewer annotations now and get better errors.
Modelling loading states as unions removed a whole category of bugs in our React app.
Generics finally make sense. The mapped types lesson is dense, but that is the nature of the topic.
We are migrating a large JavaScript codebase. The allowJs and checkJs approach worked well for us.
Exercises with failing type checks were fun. A few more Node.js examples would help.
The first sections are easy, then conditional types arrive quickly. Still worth it for the narrowing lessons.