This is the second course in the TypeScript series. By the end, you will be comfortable with any types you come across and possess the knowledge to create your own advanced types. The only prerequisite is the first course in the TypeScript series found here.
Before You Begin
Click here to join the
Bitovi Community Discord
To get the most out of this course, join the Bitovi Community Discord! Bitovi has a large community with developers who are happy to help with problems and answer questions about this course, TypeScript, and development in general! For questions specific to this course, please use the TypeScript chat room.
At the end of most sections, there will optional exercises to help solidify the content covered. There are a couple of different ways you can do the exercises! If you have an IDE and prefer to use the source code for the exercise - the prompt and code will be available to copy over. Prefer a more hands-off approach? Each exercise will have a link that will open it in CodeSandbox. The solutions to the exercises are posted below each exercise and hidden by an accordion. There are other ways besides the presented solution. Find one you think is cool and want to share? Drop it in Discord!
If you find bugs in this training or have suggestions, create an issue or email
Advanced TypeScript can be generally stated as finding ways to create types from other types. To do this, TypeScript has many powerful features we can work with from looking up types off of other types to conditionally choosing a type based on another.
- Typing Systems
- Learn how TypeScript compares types under the hood and some of the ramifications it has.
- Generics With Constraints
- Learn how to constrain generics to create even more reusable logic.
- Index Accessed Types
- Learn how to look up types of properties on other types.
- Mapped Types
- Learn how to iterate through each key of an object type to create new types for those keys.
- Conditional Types
- Learn how to choose a type base on a passed-in type conditionally.
- Template Literal Types
- Learn how to make string literals even more powerful.
✏️ Head over to the first lesson and strengthen the way you think about Typescript's typing systems.