将类或接口用于共享服务



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

import { Injectable } from '@angular/core';
export interface IAccountModel {
  sessionId: string;
}
@Injectable()
export class AccountContextService {
  AccountModel: IAccountModel = {
    sessionId: ''
  };
  constructor() { }
}

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

有什么好处或缺点?

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

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){}

最新更新