实现接口的类型检查组件
Typechecking Components that implement an Interface
在 Angular 中,我想为实现我传递给 class.
的特定接口的组件指定类型
示例:
Class A 有这个签名
class A {
constructor(public component: ?) {}
}
然后我们声明一个接口I
export interface I<T> {
setData(data: T): void;
}
组件B实现了接口I
class B implements I<string> {
setData(data: string) { ... }
}
现在的问题是,不仅组件 B 实现了 I,组件 C、D 和 E 也实现了。此外 classA 应该能够处理组件 B、C、D 和 E,即所有组件实现接口 I 的组件。
我可以在 class A 中指定组件类型是任何实现接口 I 的组件吗?我现在的解决方案是
component: any
但我想说明它可以是任何限制,它实现了 I.
还有其他方法吗?
以下对我有用:
class A {
constructor(public component: new (...args: any[]) => I<any>)
}
在 Angular 中,我想为实现我传递给 class.
的特定接口的组件指定类型示例: Class A 有这个签名
class A {
constructor(public component: ?) {}
}
然后我们声明一个接口I
export interface I<T> {
setData(data: T): void;
}
组件B实现了接口I
class B implements I<string> {
setData(data: string) { ... }
}
现在的问题是,不仅组件 B 实现了 I,组件 C、D 和 E 也实现了。此外 classA 应该能够处理组件 B、C、D 和 E,即所有组件实现接口 I 的组件。 我可以在 class A 中指定组件类型是任何实现接口 I 的组件吗?我现在的解决方案是
component: any
但我想说明它可以是任何限制,它实现了 I.
还有其他方法吗?
以下对我有用:
class A {
constructor(public component: new (...args: any[]) => I<any>)
}