TypeScript explained for JavaScript developers: static types, editor feedback, migration paths, tradeoffs, and when to use it.