5

私が取り組んでいるAngular 2プロジェクトのtypescript定義を作成して、エクスポート可能なライブラリにしようとしています。

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

typescript定義ファイルを作成できるように、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 リンターはエラーをスローします。

Angular 1 から来て、これはすべてのアプリでコードを分割するために採用した同様のパラダイムでしたが、Angular 2 ではアプローチを変更する必要があるのでしょうか? 私は他の多くの Angular 2 の例を見てきましたが、それらはすべて同様の方法でそれを行っています。

4

1 に答える 1