node_modules/rxjs-compat/operator/shareReplay.d.ts(2,10) 中的错误:错误 TS2305:

Posted

技术标签:

【中文标题】node_modules/rxjs-compat/operator/shareReplay.d.ts(2,10) 中的错误:错误 TS2305:【英文标题】:ERROR in node_modules/rxjs-compat/operator/shareReplay.d.ts(2,10): error TS2305: 【发布时间】:2019-06-26 20:13:33 【问题描述】:

我正在尝试将基本的 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

我可以在这里采取什么步骤?

编辑:

我将 rxjs 和 rxjs-compat 版本都对齐为 6.3.3,但现在我收到以下错误:

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

【问题讨论】:

对齐rxjsrxjs-compat的版本。他们不应该不同 【参考方案1】:

我有同样的问题,我不得不降级 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-compat,它提供了 rxjs v6 和 v5 之间的兼容层。

所以我认为你可以直接使用 import shareReplay from 'rxjs/operators';

这里有更多关于运营商的信息:https://www.learnrxjs.io/

【讨论】:

但我在代码中的某些地方有 .do() 调用。将 6.4.0 用于 rxjs 时会运行吗? 你应该可以将它与 Pipebale 运算符一起使用,可以在 rxjs/operators 中访问,使用 pipeable 运算符github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.mdlearnrxjs.io/operators/utility/do.html 被称为点击 我将尝试使用管道操作符并在出现问题时返回 Jack Ryder:对我不起作用,先生再次遇到同样的错误:Uncaught TypeError: Object(...) is not a function?【参考方案2】:

我在 package.json 文件中 rxjs 和 rxjs-compat 的版本与 rxjs="6.3.3" 和 rxjs-compat="6.4.0" 不同的项目中遇到了同样的问题 所以我只是通过以下命令降级了 rxjs-compat 版本:

npm install rxjs-compat@6.3.3 --s

它对我有用。

【讨论】:

欢迎兄弟乐于助人【参考方案3】:

我遇到了与 "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。谢谢

【讨论】:

很高兴它有帮助。【参考方案4】:

我遇到了类似的问题。但是,当我在 package.json 中使用以下版本的 rxjs 和 rxjs-compat 时,它就解决了。 --->“rxjs”:“6.3.3”, --->“rxjs-compat”:“6.3.3”

【讨论】:

【参考方案5】:

在 package.json 文件中编辑替换 "rxjs-compat": "^6.4.0" => "rxjs-compat": "^6.3.3" 并运行命令

npm install

【讨论】:

欢迎来到 ***。回答时,请添加说明。它极大地提高了对社区的回答的长期价值。问候。【参考方案6】:

我正在使用 Angular 6,问题通过删除解决了

import 'rxjs/Rx';

来自我的代码。

【讨论】:

【参考方案7】:

npm install rxjs-compat@6.3.3 --s

上面的命令已经解决了我的问题

【讨论】:

【参考方案8】:

我通过从 rxjx/Rx 导入 Observable 得到了这个错误 - 从 rxjs 导入它解决了这个问题。

我的版本是

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

我不需要更改它们,只需更改导入来源

从 'rxjs/Rx' 导入 Observable ;

从 'rxjs' 导入 Observable ;

【讨论】:

以上是关于node_modules/rxjs-compat/operator/shareReplay.d.ts(2,10) 中的错误:错误 TS2305:的主要内容,如果未能解决你的问题,请参考以下文章

启动我的项目时出错(运行 ng serve 后)

ec2 构建框中的 Ng 构建问题,但在本地没有