我正在创建一个Angular2应用程序。 我有3个方面可以搜索。我想创建一个接口和三个实现此接口的类。
我想创建一个主服务类,它可以根据我给出的类型调用特定的类。
界面是:
import { Observable } from 'rxjs/observable';
import { FacetType } from './facet-type';
export interface IFacetService {
canHandle(type: FacetType): boolean;
getFromServer(): Observable<any[]> | null;
}
export enum FacetType {
Type = <any>'Type ',
Application = <any>'Application',
Company = <any> 'Company'
}
并且类如下:
export class TypeService implements IFacetService {
private type: Type[];
canHandle(type: FacetType): boolean {
return type === FacetType.Type;
}
constructor() { }
getFromServer(): Observable<Type[]> | null {
// Call from Server
}
}
服务功能:
export class MyService {
constructor( private facetServices: IFacetService[]) {
}
get(type: FacetType) {
const facets = this.facetServices.filter(function(item) {
return item.canHandle(type);
});
for (const facet of facets) {
return facet.getFromServer();
}
}
我在服务功能的cmd中收到此错误:
Property 'canHandle' does not exist on type 'IFacetService'.
我们的想法是为所有人编写一个代码,根据FacetType,代码将会改变。
原因是:将来会有更多的方面。
任何帮助?一点点解释可能是非常值得赞赏的。谢谢。