我正在尝试为我正在处理的 Angular 2 项目创建打字稿定义,以便它可以成为可导出的库。
我有几个服务设置,它们将 http 请求返回到与以下内容非常相似的组件:
public create(user:User) {
return this.http.post(this._apiUrls.create,
JSON.stringify(user), {
headers: this.apiConfig.getApiHeaders()
});
}
然后我从这样的组件中调用它:
Session.create(user).subscribe((res:Response) => {
this.user = res.json().user
});
这一切都很好,直到我在 tsconfig 文件中将“声明”设置为 true,以便我可以创建打字稿定义文件。我的一些服务开始出现以下错误:
error TS4053: Return type of public method from exported class has or is using name 'Observable' from external module "node_modules/rxjs/Observable" but cannot be named.
我主要了解这个问题,但我不知道解决方案。如果我将 Observable 导入服务,那么 typescript linter 会抛出错误,因为从技术上讲,它没有在该文件中使用。
来自 Angular 1,这是我们在所有应用程序中采用的类似范例来分解我们的代码,但也许我需要更改 Angular 2 中的方法?我查看了许多其他 Angular 2 示例,他们也都以类似的方式完成了它。