[英]Type of angular components
我可以将角度组件类称为一种类型吗? 我看到 Ionic 使用any
作为组件。 是否可以在 Typescript 中声明一个只需要组件类的参数类型?
我看到了这个问题,但是组件在构造函数中没有任何共同点: 将类作为参数传递会导致“不可更新”错误
有ComponentType<T>
。 也许会有所帮助。
import { ComponentType } from '@angular/cdk/overlay';
事实证明,目前这在 TypeScript 中是不可能的。 装饰器不能改变类的类型,这意味着它们对于类型系统是不可见的。
更多信息可以在这里找到:
如果它们是动态创建的组件,Angular 会提供 ComponentRef 类。
见这里: https ://angular.io/api/core/ComponentRef
静态声明的组件不会有此类。 虽然,您可以根据需要将组件标识符作为无类型变量传递,只要将它们导入相关组件/服务即可。 如果您正在使用依赖注入,即将组件实例注入其主机指令,则“类型”将只是其名称,就像这样 -
import { Directive } from '@angular/core'
import { MyNavigatorComponent } from '../components/my-nav.component'
constructor (private navigator: MyNavigatorComponent) {
来自: https ://angular.io/api/core/ComponentRef
以下表示组件或其他对象是其实例的类型。
Type 的一个示例是 MyCustomComponent 类,它在 JavaScript 中由 MyCustomComponent 构造函数表示。
代码示例:
import { Type } from "@angular/core";
export type MyDynamicComponentType = Type<any>;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.