In order to take full advantage of TypeScript you must have the knowledge to use its advanced features to write clean and expressive code. In this course, Advanced TypeScript, you will learn how to harness the full power of the type system to write better code with fewer errors. You will learn how to extend your use of existing types with union, intersection, and tuple types. You'll then go over how to create and use decorators. You will also learn how to manage asynchronous code using promises and the async and await keywords. When you're finished with this course, you will have the advanced skills necessary to fully utilize the language to solve all of your client and server-side coding problems.