使用类或接口进行共享服务

时间:2017-02-10 17:05:46

标签: angular typescript

我想保存并通过整个应用程序传递数据。因为我写了共享服务

import { Injectable } from '@angular/core';

export interface IAccountModel {
  sessionId: string;
}

@Injectable()
export class AccountContextService {

  AccountModel: IAccountModel = {
    sessionId: ''
  };

  constructor() { }

}

我怀疑哪个是最佳实践,使用类或接口来处理数据。

有什么好处或缺点?

1 个答案:

答案 0 :(得分:0)

您可以使用接口,抽象类甚至类来代替接口,但有一个重要的限制:只有类和OpaqueToken可用于注入。

class AbstractService {}

class Service extends AbstractService implements IService {}

//will not work
provide: [{provide: IService, useClass: Service}]
constructor(private service:IService){}

//will work
provide: [{provide: AbstractService, useClass: Service}]
constructor(private service:AbstractService){}
constructor(private @Inject(AbstractService) service:IService){}