Programming TypeScript: Making Your JavaScript Applications Scale: Cherny, Boris: 9781492037651: Amazon.com: Books
This is a great book, but I wouldn't recommend it as your very first TypeScript (TS) book unless you’re already very senior with BOTH ES6 AND a strongly typed coding language (C#, Java, Swift, etc.).
If you're at that level, this book is perfect for you. The author methodically covers all the language features of TS from bottom to top, with a really dense signal-to-noise ratio on almost every page (the occasional slightly-too-long geek-humor aside notwithstanding).
IF you are NOT already senior in both ES6 and a typed language, I wouldn't start with this book. Why not? I say that because the author's writing style is very much targeted at those who already know all the vocabulary, and the usage/value/purpose, of most features he explains along the way. This is NOT a book that will teach you what these features are if you don’t already know. He gives plenty of really good code examples, but as those features get more advanced you may struggle if you don’t already have an understanding of the general meaning/purpose/value of those features. It's a book that assumes you know _a_few_ other typed languages already, and you just want to learn how to do the things you're already familiar with, using TypeScript.
While I _am_ very experienced with JS/ES6, and I _have_ worked with typed languages before, I'll admit I'm new to generic types (i.e. these guys… <T>, <T, U>, etc.). I learned from this book that these are central to TS, and that they're a super powerful abstraction feature. But honestly, I'm still super confused about how they work, how I'll properly use them, etc.
This book didn't quite get me there with “generics”, so I need to do some more reading (and hacking) to figure that all out. Since this is my first TS book, that's fine – but while generics are the only thing I had real trouble with, unless you're experienced with types in general there may a few other things that leave you confused after reading this book.
Final word: This is a GREAT BOOK - but it’s NOT for beginners. If you’re not a ninja already, learn ES6 and TS basics elsewhere first, then come to this book when you’re ready for that one permanent reference book to keep on your desk until TypeScript goes out of style.