角度分量的类型

时间:2017-08-22 17:07:40

标签: angular typescript type-safety

我可以将角度分量类称为类型吗?我看到Ionic使用any作为组件。在Typescript中是否可以声明一个只需要组件类的参数类型?

我看到了这个问题,但组件在构造函数中没有任何共同之处:  Passing class as parameter causes "is not newable" error

3 个答案:

答案 0 :(得分:3)

如果它们是动态创建的组件,则Angular提供ComponentRef类。

见这里:https://angular.io/api/core/ComponentRef

静态声明的组件不具有此类。虽然,您可以根据需要将组件标识符作为无类型变量传递,只要将它们导入相关组件/服务即可。如果你正在使用依赖注入,即将一个组件实例注入到它的host指令中,那么'type'就是它的名字,就像这样 -

 import { Directive } from '@angular/core'
 import { MyNavigatorComponent } from '../components/my-nav.component'

 constructor (private navigator: MyNavigatorComponent) {

答案 1 :(得分:1)

事实证明,这目前在TypeScript中是不可能的。装饰器无法更改类的类型,这意味着它们对于类型系统是不可见的。
可以在这里找到更多信息:

答案 2 :(得分:1)

ComponentType<T>。 也许会有所帮助。

import { ComponentType } from '@angular/cdk/overlay';