作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
如何在虚拟函数中定义 Component
的类型?
@Component({
templateUrl: 'a'
})
export class MyApp {
}
function dummy(component: any) {
....
}
dummay(MyApp);
最佳答案
您的问题中有几个不同的项目需要澄清。
在您的示例中,export class MyApp {...}
正在创建类型为 MyApp
的类。
通常,您会将类的实例传递给函数。如果这就是您要尝试执行的操作,那么它将如下所示:
function dummy(component: MyApp) {
....
}
dummay(new MyApp());
如果您实际上是想将类类型传递给函数,那么您需要执行以下操作:
import {
Type
} from '@angular/core';
function dummy(component: Type<any>) {
....
}
dummay(MyApp);
另一种可以使它更强大的方法是,如果您将可以传递给函数的组件限制为仅实现给定接口(interface)的组件。这方面的一个例子如下:
import {
Type
} from '@angular/core';
export interface IFoo {
id: number;
getStuff: () => string;
}
@Component({
templateUrl: 'a'
})
export class MyApp implements IFoo {
}
function dummy(component: Type<IFoo>) {
const stuff = component.getStuff();
....
}
dummay(MyApp);
关于angular - 如何在 Angular 中定义组件类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52098028/
我是一名优秀的程序员,十分优秀!