web-dev-qa-db-ja.com

「... / node_modules / rxjs / Rx」にはエクスポートされたメンバー「throwError」がありません

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

私は何が欠けていますか?

8
kathikeyan A

_throwオブザーバブルをお探しですか?

import {_throw} from 'rxjs/observable/throw';

更新

あなたはAngular 6のドキュメントにrxjs関数を含むthrowErrorバージョン6が含まれています。ForAngular 5(含むrxjs 5)_throwを使用

13

_で始まる単語を使うのが好きではないので、これを行いました

import { _throw as throwError } from 'rxjs/observable/throw';
7
Noob

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'));
0