Programming TypeScript: Making Your JavaScript Applications Scale
Best for: Developers rolling TypeScript out across a real codebase or team who want the type-system fundamentals paired with practical build-tooling and framework guidance.
- ISBN-13: 9781492037651
- Level: intermediate
- Published: 2019
Boris Cherny worked on TypeScript tooling at Facebook, and this book reads like it was written for someone about to introduce TypeScript to a team, not just an individual learning it for a side project. It covers the same core ground as a beginner book — types, interfaces, classes, generics — but moves into structural typing, conditional types, and mapped types earlier and in more depth, then spends real chapters on integrating TypeScript into frontend (React) and backend (Node) projects with the actual build tooling involved.
The strongest chapter is on type design: choosing between algebraic data types (discriminated unions) and class hierarchies for modeling a domain, with a clear framework for when each is the better fit rather than treating it as a matter of taste. It’s a more opinionated, more scale-conscious take on the same territory Effective TypeScript covers item by item.
The main weakness is its age: written against TypeScript ~3.x, the tooling chapters on webpack and module bundling feel dated next to today’s Vite-first, ESM-native default setups, and a few of its “advanced types” techniques have since been superseded by inference improvements in later TypeScript releases. It’s still correct about the type system’s core mechanics, just not about the surrounding ecosystem.
Compared to Effective TypeScript: both are pitched at developers who already know JavaScript well, but this book is a linear read building toward real project setup, while Effective TypeScript is an itemized reference you dip into rather than read straight through.