构造函数的类型
在 TypeScript 中,我们可以用 interface 来描述类,同时也 interface 里特殊的 new() 来描述类的构造函数类型。使用方法如下:
// 用 INumber 来描述 NumberClass 的形状interface INumber {n: number;double(n: number): number}// 构造一个 NumberClass 类class NumberClass implements INumber {constructor(public n: number) {console.log('n is ' + n)}double(n: number) {return 2 * n;}}// 用 new() 来描述 NumberClass 的构造函数类型interface INumberClassConstructable {new(n: number): INumber}// 该方法接受一个类,并将之实例化,利用 INumberClassConstructable 就可以约束实例化时传递给 clazz 构造函数的参数是准确的function buildNumber(clazz: INumberClassConstructable) {return new clazz(1)}
