TypeScript Generics

In this section, we will learn about Typescript Generics.

Generics in Typescript is no different than generics in other programming languages like C# or Java.

You can create a class, an interface, or a function that works with different types, without specifying the type upfront.

TypeScript Generics Syntax

Let’s create a function with generic type:

function greet(a : T) {
  console.log(`Hi ${a}!`)
}

greet('DS'); //function call

The symbol T identifies a generic type.

Note: It is not required to use T as a type parameter. You can give any name to a type parameter.

We may restrict the type to a class or an interface using the extends keyword.  Let us show you with the help of an interface example:

interface IGreet 
{ 
   Name: string 
}

function greet<T extends IGreet>(a : T) {
  alert(`Hi ${a.name}!`)
}

greet({ Name: 'Tutorials Nest'}); //function call

Generic Interface

We can create a generic interface in typescript.

interface IStudent 
{ 
    result:T;
    process(a: T, b: T) => T;
}

Generic Class

A generic class in typescript would look like this:

class Programmer {
   
   private languageName: string;
   private languageInfo: T;
constructor(lang: string) {
      this.languageName = lang;
   }
   ...
}

let programmer1 = 
   new Programmer("Typescript");
let programmer2 = 
   new Programmer("C#");

Let’s have a look at the build tools for typescript in our next section.