Book: The TypeScript Type System — From Generics to DSL-Level Types Also by me: The TypeScript Library — the 5-book collection My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub A junior on your team opens a PR with a 14-line conditional type at the top of the user service. It widens the return type of a wrapper so callers see a stricter shape. It works. Reviews stall for two days because nobody on the review thread can read it without a whiteboard. You sit with the type for ten minutes and replace it with a four-line union. The wrapper still works. The reviewers move on. That is the question every conditional type has to answer: is the structural inference worth what it costs the next reader? Sometimes the answer is yes and the type pays for itself across a hundred call sites. Sometimes the same shape would be a literal union you can read at a glance. The shape, in one paragraph A conditional type is T extends X ? A : B .…