我需要将引用传递给从另一个类扩展的类。这是因为我有一个Angular 2模态服务,它将在给定时动态实例化组件。
模态服务基于传递的模态选项来执行此操作。其中一个选项是组件。我需要扩展这个组件,以确保传递的组件上有一些可以调用的方法。
我的模态选项类非常简单,如下所示:
export class ModalOptions {
constructor(
public component: typeof ModalClass,
public title: string,
public size: string = "med"
) { }
}
ModalClass是一个非常简单的类:
export class ModalClass {
public ok(): Promise<void> {
return Promise.resolve();
}
public cancel(): Promise<void> {
return Promise.resolve();
}
}
因此,如果我将此类扩展为如此组件:
@Component({
moduleId: __moduleName,
templateUrl: "...",
})
export class MyComponent extends ModalClass {
public details: SomeType;
constructor(
// Stuff
) {
super();
this.details = //Stuff
}
}
我希望能够用它构建一个模态选项对象并传递它。我希望能够检查ModalOptions中给出的组件,以确保它符合标准。
然而,虽然这适用于typescript playground,但Visual Studio中的Typescript根本不喜欢它并且不会编译。
"Argument of type 'typeof MyComponent' is not assignable to parameter of type 'typeof ModalClass'."
我有打字稿编译器版本1.8.10。
我该如何做到这一点?
感谢您的时间。