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 
    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.