In this chapter, you have learned about a very powerful tool: typed language built on top of JavaScript. Type checking has countless advantages for any code base. It prevents you from deploying a breaking change that definitely does not comply with what is expected. You have learned how to tell TypeScript what is allowed. You know what generic types are, and how to use them to reduce code repetition in typed files.
New tools come with new knowledge, so you have also learned the basics of type inference and structural typing. This part of TypeScript definitely requires trial and error. Practice it to understand it better.
This is the last chapter of this book. I hope you have learned many interesting concepts and patterns. I have challenged you throughout this book; now it is time that you challenged your code base. See what fits your application and maybe rethink the choices...