Static type checkers catch bugs before they run and make debugging noticeably easier, but most explanations treat them as abstract math. This course takes the opposite approach: you build a real, working typechecker in plain JavaScript over a few focused hours.
What you'll actually build
A static typechecker similar in spirit to the ones behind Java or TypeScript, picking up type theory concepts only when they're needed to write the next piece of code. Every idea is backed by working code and live examples from the first lecture onward.
Before you start
No formal type theory background is required, but you should already understand how an interpreter works, including terms like eval, closures, scope chains, and environments. If those aren't familiar yet, the companion course on building an interpreter is the recommended starting point.
Who it's for
Engineers who want to understand static analysis deeply, whether they're building their own language, interested in compilers, or just want real insight into how type systems work. The logic learned here maps cleanly onto TypeScript, Rust, OCaml, Python, and C++.