angular - 使用其基类将继承组件作为参数传递给方法
问题描述
(我正在构建一个接受继承组件并显示它们的模态系统)
我正在尝试将继承组件传递给使用其基类作为类型的方法。
@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”类型的参数。“typeof ActualComponent”类型中缺少属性“ngOnInit”,但在“BaseCompComponent”类型中是必需的。
基类实现了这个,我做错了什么?这似乎相当简单的 OOP ?
(如果问题不清楚,我还在stackblitz上写了一个示例
请参阅“Hello”组件第 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);
}
}
推荐阅读
- html - 如何正确地将我的 HTML 代码附加到 div 中?
- c++ - 从 std::list 中的元素的 std::move 后得到无效输出
- python - 为什么我在使用 os.popen 时最后一行是空的
- arrays - Server doest recognize array
- amazon-redshift - RedShift: relation does not exist
- python - How to invoke a cloud function from google cloud composer?
- python - 带计时器的 Python 线程 - TypeError:“NoneType”对象不可调用
- javascript - I'm looking to mute someone in discord.js v13 and i have problem in creating VoiceState object
- f# - fsharp.charting.gsk System.IO.FileNotFoundException when running in mono
- arrays - How to maintain the first and last element of a nested array with jolt