what is new() in Typescript?

new() describes a constructor signature in typescript. What that means is that it describes the shape of the constructor.
For instance take {new(): T; }. You are right it is a type. It is the type of a class whose constructor takes in no arguments. Consider the following examples

function create<T>(c: { new(): T; } ): T {
    return new c();
}

What this means is that the function create takes an argument whose constructor takes no arguments and returns an instance of type T.

function create<T>(c: { new(a: number): T; } ): T

What this would mean is that the create function takes an argument whose constructor accepts one number a and returns an instance of type T.
Another way to explain it can be, the type of the following class

class Test {
    constructor(a: number){

    }
}

would be {new(a: number): Test}

Leave a Comment