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}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…