私が作業しているAngular 2プロジェクトのtypescript定義を、エクスポート可能なライブラリにするために作成しようとしています。宣言をTRUEに設定すると、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から来ていますが、これは私たちのすべてのアプリケーションでコードを分割するのに似たパラダイムでしたが、角度2のアプローチを変更する必要があるかもしれません。私は他のAngular 2の例をたくさん見てきましたが、それらはすべて同じようにして行っています。
いくつかの例では、私はあなたのソリューションを理解していなかった – DarkNeuron
素敵だったでしょう。あなたは私が何をすべきかをより明確に説明できますか? –
著者が明示的に 'Observable'をインポートすると、' node_modules/rxjs/Observable'から 'import {Observable} 'をインポートすると、エラーが修正されます。それが解決策です。その解決策を問題にしたのは、彼らのリンターが「観測可能」を未使用と考えていたことです。 * that *の解決策は、戻り値の型として 'Observable'を実際に使用することでした(' public create(user:User):Observable')。私は明確にするために私の答えを更新しました。 –