使用方法的基类将继承组件作为参数传递给方法



(我正在构建一个接受继承组件并显示它们的模态系统(

我正在尝试将继承组件传递给使用其基类作为类型的方法。

@Component(...) export class BaseCompComponent implements OnInit
@Component(...) export class ActualComponent extends BaseCompComponent {
method(b:BaseCompComponent) { }
Calling it like so: method(ActualComponent) --> ERROR

错误:

类型为"typeof ActualComponent"的参数不能分配给类型为"BaseCompComponent"的参数。 属性"ngOnInit"在类型"typeof ActualComponent"中缺失,但在类型"BaseCompComponent"中是必需的。

基类实现了这一点,我做错了什么?这似乎相当简单 OOP ?

(如果问题不清楚,我还写了一个关于堆栈闪电战的样本

请参阅"您好"组件行 #19(

谢谢!

您需要指定ActualComponent是类型而不是对象。

import { Component, Input, Type } from '@angular/core';
import { BaseCompComponent } from './base-comp/base-comp.component'
import { ActualComponent } from './actual/actual.component'
@Component({
selector: 'hello',
template: `<h1>Hello {{name}}!</h1>`,
styles: [`h1 { font-family: Lato; }`]
})
export class HelloComponent  {
@Input() name: string;
method(b: Type<BaseCompComponent>) { 
}
constructor () { 
this.method(ActualComponent);
}
}

最新更新