The course is part of this learning path
This module looks at Generics in Typescript, and how to create different types of generic Functions, Classes and Interfaces.
The objectives of this module are to provide you with an understanding of:
- How to create Generic Functions
- How to create Generic Classes
- How to create Generic Interfaces
This learning path is aimed at all who wish to learn how to use TypeScript
Prerequisites of the Course
Please note: Before attending this class delegates must have a Microsoft account (signing up one is free).
We welcome all feedback and suggestions - please contact us at firstname.lastname@example.org to let us know what you think.
Generic interfaces are often used to describe objects that may be generics themselves. If we think about the vehicle, car, bus class inheritance tree, we may wish to print out its details at some point. So we've created a VehiclePrinter interface that will work with any type T that extends the vehicle class. The vehicle class is defined as abstract below along with car and bus classes that both extend it. There's also an independent plane class. On line 25, we created generic class called garage that accepts any type that extends the vehicle class. We want to print vehicles that can be parked in the garage. We also make this generic class implement the generic interface VehiclePrinter which accepts the same T type as the class. The class defines an array of type T, a park function to add to the array, and the required implementation of the print method. Any type of vehicle can now use both the park and print method as long as the vehicle could be passed into the garage in the first place. We create park and print vehicles on lines 42 to 47. Notice how the error is signified on parking the plane on line 44. We also demonstrate that any instance of a vehicle could call this method on the garage, even if it's not currently parked there, by creating another instance of car and then calling print with it on lines 49 and 50. So you've explored how you can create a generic interface and use it with a generic class. In this module, we've also looked at generic functions and how we can constrain function parameters. Generics are really useful to help reduce duplication of similar code and make the intention of it clear.