【问题标题】:How to specify that function argument type is any Angular component如何指定函数参数类型是任何 Angular 组件
【发布时间】:2018-02-12 07:48:02
【问题描述】:

在我用 typescript 编写的 Angular v5 应用程序中,我正在尝试创建一个函数,该函数接受一个始终是 Angular 组件的参数。任何角度分量。是否有一个所有 Angular 组件都实现的接口/抽象类,我可以将其指定为类型?我最初尝试将参数类型指定为 Component(例如 function test(param: Component)),然后才意识到我指定参数类型是 Component 装饰器,而不是实际的组件。

我似乎找不到 S.O.回答(或问题)具体询问。

【问题讨论】:

  • 你试过了吗:test(myComponent: Type<any>) { ... }
  • @Talavera 我相信这就是答案,考虑提供参考报价和链接。
  • Angular live example 显示相同

标签: angular typescript


【解决方案1】:

你可以做的是:

  • 如果您知道组件的类型

    test(myComponent: Type<MyComponent1 | myComponent2>) { ... }

  • 如果你不知道:

    test(myComponent: Type<any>) { ... }

看看offical Angular Type doc's

【讨论】:

  • 非常感谢!文档似乎在这个主题上非常有限,你知道Type 是专门为Component 提供的接口还是Directive 的接口(因此会包含组件)?这确实是一个单独的问题,但是如果Type 只是Component 的接口,你知道Directive 是否有接口吗?目前我实际上并不需要这个,但我想有一天我可能会。
  • 我认为 Type 应该对两者都有效,因为根据代码它“表示组件或其他对象是实例的类型”。如果您看到源代码,它会扩展作为 Javascript 基础的 Function。
猜你喜欢
  • 2022-06-18
  • 2013-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-04
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
相关资源
最近更新 更多