angular - FEIL i node_modules/rxjs-compat/operator/shareReplay.d.ts(2,10): feil TS2305:


Jeg prøver å oppgradere en grunnleggende Angular-skjelettapp fra Angular 5 til Angular 6, og her er problemet jeg møter når jeg prøver å kjøre appen:

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'.

Her er min 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"
 }
}

Jeg får ikke denne feilen når jeg bruker TypeScript 3.3.1, men jeg kan ikke bruke det siden kompilatoren kun tillater meg å bruke TypeScript < v2.10.0

Hvilke steg kan jeg ta her?

REDIGER :

Jeg justerte både rxjs- og rxjs-compat-versjonene til å være 6.3.3, men nå får jeg følgende feil:

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

Svar #1

Jeg hadde samme problem, jeg måtte nedgradere rxjs-compat(6.3.3) for å tilpasse det med rxjs(6.3.3),

I din package.json bør det se slik ut:

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

Hvis du bruker rxjs 6.4.0, trenger du ikke å bruke rxjs-compat, som gir et kompatibilitetslag mellom rxjs v6 og v5.

Så jeg tror du kan bruke import { shareReplay } fra 'rxjs/operators' direkte;

Mer informasjon om operatørene her: https://www.learnrxjs.io/

Svar #2

Jeg hadde det samme problemet for prosjektet hvor versjonene av rxjs og rxjs-compat var forskjellige i package.json-filen, med rxjs="6.3.3" og rxjs-compat="6.4.0", så jeg nedgraderte bare rxjs-compat-versjonen med følgende kommando:

npm install [email --s

det fungerte for meg.

Relaterte artikler