web-dev-qa-db-ja.com

node_modules / rxjs-compat / operator / shareReplay.d.ts(2,10)のエラー:エラーTS2305:

基本的なangularスケルトンアプリをangular 5からangular 6にアップグレードします。アプリを実行しようとしたとき:

ERROR in node_modules/rxjs-compat/operator/shareReplay.d.ts(2,10): error TS2305: Module '"C:/newAdmin/testing-front-end/admin-fe/node_modules/rxjs/internal-compatibility/index"' has no exported member 'ShareReplayConfig'.

これが私のpackage.jsonです:

{
 "name": "admin-fe",
 "version": "0.0.0",
 "scripts": {
 "ng": "ng",
 "start": "ng serve",
 "build": "ng build",
 "test": "ng test",
 "lint": "ng lint",
 "e2e": "ng e2e"
 },
 "private": true,
 "dependencies": {
   "@angular-devkit/core": "^7.3.0",
   "@angular/animations": "^6.1.0",
   "@angular/common": "^6.1.0",
   "@angular/compiler": "^6.1.0",
   "@angular/core": "^6.1.0",
   "@angular/forms": "^6.1.0",
   "@angular/http": "^6.1.0",
   "@angular/platform-browser": "^6.1.0",
   "@angular/platform-browser-dynamic": "^6.1.0",
   "@angular/router": "^6.1.0",
   "@ngrx/store": "^7.2.0",
   "angular-oauth2-oidc": "^5.0.2",
   "core-js": "^2.5.4",
   "moment": "^2.24.0",
   "rxjs": "6.3.3",
   "rxjs-compat": "^6.4.0",
   "zone.js": "~0.8.26"
  },
  "devDependencies": {
   "@angular-devkit/build-angular": "~0.7.0",
   "@angular/cli": "~6.1.3",
   "@angular/compiler-cli": "^6.1.0",
   "@angular/language-service": "^6.1.0",
   "@types/jasmine": "~2.8.6",
   "@types/jasminewd2": "~2.0.3",
   "@types/node": "~8.9.4",
   "codelyzer": "~4.2.1",
   "jasmine-core": "~2.99.1",
   "jasmine-spec-reporter": "~4.2.1",
   "karma": "~1.7.1",
   "karma-chrome-launcher": "~2.2.0",
   "karma-coverage-istanbul-reporter": "~2.0.0",
   "karma-jasmine": "~1.1.1",
   "karma-jasmine-html-reporter": "^0.2.2",
   "protractor": "~5.3.0",
   "ts-node": "~5.0.1",
   "tslint": "~5.9.1",
   "TypeScript": "^2.9.1"
 }
}

TypeScript 3.3.1を使用するとこのエラーは発生しませんが、TypeScript <v2.10.0までしかコンパイラーで許可されないため、使用できません。

ここではどのような手順を実行できますか?

編集:

Rxjsとrxjs-compatの両方のバージョンを6.3.3に揃えましたが、次のエラーが発生します。

ERROR in node_modules/@ngrx/store/src/store.d.ts(30,31): error TS2304: Cannot find name 'Extract'.
17
jackfr0st

同じ問題があり、rxjs-compat(6.3.3)をダウングレードしてrxjs(6.3.3)に合わせなければなりませんでした。

あなたのpackage.jsonではそれは次のようになります:

"rxjs": "6.3.3",
"rxjs-compat": "6.3.3",

Rxjs 6.4.0を使用している場合、rxjs v6とv5の間の互換性レイヤーを提供するrxjs-compatを使用する必要はありません。

したがって、 'rxjs/operators'からimport {shareReplay}を直接使用できると思います。

演算子の詳細はこちら: https://www.learnrxjs.io/

40
pk_code

Rxjsとrxjs-compatのバージョンがpackage.jsonファイルでrxjs = "6.3.3"とrxjs-compat = "6.4.0"として異なるプロジェクトでも同じ問題が発生したため、rxjs-compatバージョンをダウングレードしました次のコマンドで:

npm install [email protected] --s

それは私のために働いた。

9
Omkar Waghe

私は"rxjs": "6.3.3","rxjs-compat": "6.4.0"で同じ問題に直面しましたが、バージョン^6.3.3に移行してもエラーは残りました。ほんの少しの追加。 ^rxjs-compatがある場合、問題が発生する可能性があります。キャレットがなければ、つまりrxjs-compat": "6.3.3"でうまくいきました。 https://github.com/ReactiveX/rxjs/issues/4512 を参照してください。ありがとう

7

私は同様の問題に直面しました。しかし、package.jsonで以下のバージョンのrxjsおよびrxjs-compatを使用すると解決します。 ---> "rxjs": "6.3.3"、---> "rxjs-compat": "6.3.3"

0
Akshay Tinku

私はAngular 6を使用していて、問題を削除することで解決しました

import 'rxjs/Rx';

私のコードから。

0
Siddharth

npm install [email protected] --s

上記のコマンドは私の問題を修正しました

0
user1482689

Package.jsonファイルを編集して、「rxjs-compat」を置き換えます: "^ 6.4.0" => "rxjs-compat": "^ 6.3.3"でコマンドを実行します

npm install
0
PrAvin Banjade

Observableをrxjx/Rxからインポートしてこのエラーが発生しました-rxjsからインポートすると問題が修正されました。

私のバージョンは

"rxjs": "~6.2.0",
"rxjs-compat": "^6.0.0",

それらを変更する必要はなく、インポートを変更するだけです

'監視可能}を' rxjs/Rx 'からインポートします。

「監視可能な」を「rxjs」からインポートします。

0
John Mann