繁体   English   中英

角度组件的类型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM