使用typescript

时间:2017-07-17 09:40:44

标签: angular typescript interface angular2-services

我正在创建一个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,代码将会改变。

原因是:将来会有更多的方面。

任何帮助?一点点解释可能是非常值得赞赏的。谢谢。

0 个答案:

没有答案