Angular 2&打字稿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'的类型不兼容。 “主题”类型不能指定为“主题”类型。 属性“目的地”受到保护,但“主题”类型不是源自“主题”的类。
答案 0 :(得分:1)
我发现了问题的根源...... Angular CLI&amp;西兰花!在花了一些时间整理一些项目以重现这个问题之后,我决定除了CLI生成的项目之外还使用Angular 2快速启动。
Angular 2快速启动项目没有问题,但Angular CLI会产生错误。
因此,通过从我的工具链中删除CLI并编写自己的工具代码,我可以获得可靠的TypeScript应用程序编译。