typeof AbstractClass
,构造函数将不可调用。
解决办法是不使用
typeof Router
而是返回
Router
interface IModule {
name: string;
forms: Array<IForm>,
route: new () => Router
}
如果您需要访问
路由器
这将抹去构造器的抽象性:
export abstract class Router {
static m(): void { console.log("Router"); }
}
type RouterClass = typeof Router;
interface RouterDerived extends RouterClass { }
interface IModule {
name: string;
route: RouterDerived
}
export class Module1 extends Router {
static m(): void { console.log("Module1"); }
}
let module: IModule = {
name: "My Module",
route: Module1
}
module.route.m();
let router = new module.route();