Typescript错误“错误地实现接口”类型'Subject <boolean>'不能分配给'Subject <boolean>'

时间:2016-08-11 00:37:57

标签: angular typescript rxjs

Angular 2&amp;打字稿app。

我在NPM包中有一个抽象类,我试图在我的应用程序代码中提供实现。这一切都正常,直到我添加了公共true属性。

当前-user.service.ts

isLoggedIn:Subject<boolean>;

我 - 电流 - user.service.ts

@Injectable()
export abstract class CurrentUserContextService {

public isLoggedIn:Subject<boolean>;
public userId:string;
public userName:string;
public email:string;
public scope:string[];

constructor() {  }

}

main.ts

@Injectable()
export class MyCurrentUserContextService implements CurrentUserContextService {

// interface properties.
public isLoggedIn:Subject<boolean>;
public userId: string;
public userName: string;
public email: string;
public scope: string[];

// add custom properties as needed.


constructor() { }

}

// add custom methods as needed.

}

错误

类'MyCurrentUserContextFactoryService'错误地实现了接口'CurrentUserContextFactoryService'。   属性“currentUserContext”的类型不兼容。     类型'MyCurrentUserContextService'不能分配给'CurrentUserContextService'类型。       属性'isLoggedIn'的类型不兼容。         “主题”类型不能指定为“主题”类型。           属性“目的地”受到保护,但“主题”类型不是源自“主题”的类。

1 个答案:

答案 0 :(得分:1)

我发现了问题的根源...... Angular CLI&amp;西兰花!在花了一些时间整理一些项目以重现这个问题之后,我决定除了CLI生成的项目之外还使用Angular 2快速启动。

Angular 2快速启动项目没有问题,但Angular CLI会产生错误。

因此,通过从我的工具链中删除CLI并编写自己的工具代码,我可以获得可靠的TypeScript应用程序编译。