代码如下。
图表模态-interface.ts
export abstract class ChartModal {
modalRef: ChartModalRef<any>;
abstract onModalInit(data: ChartModalContext): void;
}
下载历史模态-component.ts
export class DownloadHistoryModalComponent implements OnInit, OnDestroy, ChartModal {
public modalRef: ChartModalRef<any>;
// error if service is injected
constructor(private someService:SomeService) {}
// ok if no service is injected
// constructor() {}
ngOnInit() {}
ngOnDestroy() {}
onModalInit(data: ChartModalContext): void {}
}
图表-modal.service.ts
@Injectable()
export class ChartModalService {
public show(clazz: typeof ChartModal): void
{
// .....
}
}
analysis.component.ts
export class AnalysisComponent {
constructor(private chartModalService: ChartModalService) {}
private onFinish(): void {
this.chartModalService.show(DownloadHistoryModalComponent); // error here
}
}
错误消息:
错误TS2345:类型&#39; typeof DownloadHistoryModalComponent&#39;的参数 不能分配给类型&#39; typeof ChartModal&#39;。
的参数
我的开发环境:
Angular6
TypeScript2.7.2
WebStorm2018.1.4
答案 0 :(得分:1)
当您传入awk '
FNR==1{
for(i=5;i<=NF;i++){
a[++h]=$i};
NF-=2;
$NF="AGE Peso";
print;
next}
{
for(j=5;j<=NF;j++){
printf("%s %s %s %s %s %s\n",$1,$2,$3,$4,a[++k],$j);
k=j==NF?k="":k}
}' Input_file | column -t
时,您实际上正在将类的构造函数传递给函数。由于没有定义构造函数typeof X
具有空构造函数签名(ChartModal
)。由于new () => ChartModal
定义了带有参数(DownloadHistoryModalComponent
)的构造函数,因此它使其与new someService:SomeService) => DownloadHistoryModalComponent
的签名不兼容。
如果你的意图是接受任何返回实现ChartModal
的东西的构造函数,那么你可以使用任意数量的参数为构造函数使用以下签名:
ChartModal