Angularドキュメントは、インポートステートメントが次のように見える " throwError "クラスについて説明しています
import { Observable, throwError } from 'rxjs';
しかし、私のコンパイラはクラスを見つけることができず、次のエラーメッセージで不平を言っています
Src/app/shared/services/myservice.service.ts(3,10)のエラー:エラーTS2305:モジュール '"D:/ workspace/dev/MyProject/node_modules/rxjs/Rx"'にはエクスポートされたメンバー 'throwError'がありません。
以下は私の環境の詳細です
Angular CLI: 1.6.8 Node: 8.11.1 OS: win32 x64 Angular: 5.2.8 ... animations, common, compiler, compiler-cli, core, forms ... http, language-service, platform-browser ... platform-browser-dynamic, platform-server, router @angular/cdk: 5.2.4 @angular/cli: 1.6.8 @angular/material: 5.2.4 @angular/service-worker: 1.0.0-beta.16 @angular-devkit/build-optimizer: 0.0.42 @angular-devkit/core: 0.4.5 @angular-devkit/schematics: 0.0.52 @ngtools/json-schema: 1.1.0 @ngtools/webpack: 1.9.8 @schematics/angular: 0.1.17 TypeScript: 2.4.2 webpack: 3.10.0
私は何が欠けていますか?
_throw
オブザーバブルをお探しですか?
import {_throw} from 'rxjs/observable/throw';
あなたはAngular 6のドキュメントにrxjs
関数を含むthrowError
バージョン6が含まれています。ForAngular 5(含むrxjs
5)_throw
を使用
_で始まる単語を使うのが好きではないので、これを行いました
import { _throw as throwError } from 'rxjs/observable/throw';
RxJSのドキュメントがあります。リンク-> https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md
Throwはキーワードであるため、_throw
の後にimport { _throw } from 'rxjs/observable/throw'
を使用できます。
または、_
で先頭の_throw
を使用したくない場合は、次のようにできます。
import { ErrorObservable } from 'rxjs/observable/ErrorObservable';
...
const e = ErrorObservable.create(new Error('My bad'));
const e2 = new ErrorObservable(new Error('My bad too'));