Author : MD TAREQ HASSAN
Introduction
Sometimes you come across a situation to repeat the same block of code for different types. So, instead of writing repeated blocks of code, generics let you write a generalized form of method.
In languages like C# and Java, one of the main tools in the toolbox for creating reusable components is generics, that is, being able to create a component that can work over a variety of types rather than a single one. This allows users to consume these components and use their own types
Generics can be applied to functions, interfaces and classes in Typescript.
Links:
- https://www.typescriptlang.org/docs/handbook/generics.html
- https://www.digitalocean.com/community/tutorials/typescript-generics-in-typescript
- https://medium.com/@rossbulat/typescript-generics-explained-15c6493b510f
Generic function
function foo<T>(arg: T): T {
// ... ... ...
return arg;
}
Generic class
class Foo<T> {
x: T;
bar(y: T): T {
}
}
Generic type constraints
class Foo<T extends U> {
x: T;
// ... .... ...
}