Announcing the TypeScript Cookbook

Stefan Baumgartner

Stefan on Mastodon

More on TypeScript, Books

Oops, I did it again! I’m writing another book, and it’s again about TypeScript. I’m happy to announce The TypeScript Cookbook, to be published in 2023 by O’Reilly. You can check it out in Early Release on the O’Reilly website.

A couple of months ago I have been contacted by Amanda Quinn from O’Reilly. She has read my articles and seen my book TypeScript in 50 Lessons, which was published by Smashing Magazine roughly two years ago. She told me that my writing style and my content would fit greatly to a book they have been thinking about, the TypeScript Cookbook, and if I would be interested in writing it.

Originally, I was a bit hesitant as I thought I already had said everything about TypeScript that fits into a book, and knowing that TypeScript in 50 Lessons took me a year of planning, I feared that a new book on the same topic would be either too similar or lack significant content.

Thankfully, Amanda put a great deal of work to tell me about the concept of an O’Reilly cookbook, what to expect, and how my content would fit in. The goal of a cookbook is to provide assistance for everyday problems with a programming language. Something that works in the context of a chapter and in the scope of an entire book, but is so self-contained people can refer to it over and over again, whenever need guidance or troubleshooting advice. This sounds a lot like my guides on this blog.

I read a couple of reference books Amanda was involved with and set out to outline a table of contents of what I would love to see in a TypeScript cookbook.

As it turns out, I still have a lot to say. Within a couple of hours, I managed to describe over 100 items (or lessons, or recipes), that I considered relevant, helpful, new, and fun. With TypeScript in 50 Lessons I had one specific reader in mind: A JavaScript developer who tips their toes into TypeScript and wants to get from beginner to expert. I focussed a lot on the type system as an extension to JavaScript and wanted to develop a mental model so developers were prepared for all situations to come. This tight focus and the sharp direction not only meant that I was able to establish a common thread from start to finish, catering to a broad range of developers, but it also meant that I had to leave out a lot of things that are important for your day to day work.

This is what The TypeScript Cookbook will be all about. You will find

  • Solutions and configurations to different setups for your project.
  • Strategies on how to react when your types are either too loose or too strict.
  • Recommendations on when to use annotations vs. when to rely on inference.
  • Use cases for string template literal types, variadic tuple types, and conditional types.
  • Helper types that go where the built-in helpers aren’t going, including testing and validating your custom-made types.
  • Support for developing complex types for your entire team.
  • Workarounds when dealing with limitations of the standard library.

Furthermore, I will look into things that I have intentionally omitted from all my work on TypeScript like … classes! And as an added bonus, you will find some guides that help you work with React and similar libraries.

If you would compare it to TypeScript in 50 Lessons, I would say 95% are completely new. The other 5% are re-imagined to fit better to the context of the cookbook, which is 5 lessons out of 100. You can think of it as both a sequel and an addendum. If you liked TypeScript in 50 Lessons, you will also like the TypeScript Cookbook.

To be honest, I’m quite excited about this project. I had no idea that I still have so much to say about this topic, and I really enjoy how the chapters turn out. Right now I’m at more than 50%, and still writing. You can watch my progress on the Early Release page.

More articles on TypeScript

Stay up to date!

3-4 updates per month, no tracking, spam-free, hand-crafted. Our newsletter gives you links, updates on fettblog.eu, conference talks, coding soundtracks, and much more.