首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >swagger > angular6: rxjs可观察的编译错误

swagger > angular6: rxjs可观察的编译错误
EN

Stack Overflow用户
提问于 2018-05-18 17:03:53
回答 3查看 1.1K关注 0票数 3

当使用角6和swagger码元时,我会得到与rxjs相关的类型记录编译器错误

Cannot find module 'rxjs-compat/Observable'

我发现了下面的https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md#rxjs-v5x-to-v6-update-guide

我在mac上使用swagger-codegen: stable 2.3.1 (与brew一起安装)。

我很感激你的指导。

更新

我使用以下方法将rxjs-compat添加到angular6项目中

npm install --save-dev rxjs-compat

我现在收到编译器警告,但是编译器错误消失了,该项目似乎正在运行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-23 22:06:06

如果您正在从以前的角度版本迁移,请遵循以下指南:

https://update.angular.io/

rxjs-compat包将与以前的rxjs实现具有兼容性。例如:

import { concat } from 'rxjs/observable/concat'

但是,应该将其更新为版本6中的新实现。

import { catchError, map, switchMap } from 'rxjs/operators';

这就是说。您还必须使用pipe更改可观察运算符的实现。例如:

代码语言:javascript
复制
this.sampleService
      .search(
        payload.firstName,
        payload.lastName,
        payload.dateOfBirth
      )
      .pipe(
        map(response => new sampleActions.SearchSuccess(response.json())),
        catchError(error => of(new sampleActions.SearchFail(error)))
      )

如您所见,运算符mapcatchError使用pipe运算符有不同的实现。

也许您可以共享日志的副本,因此更容易理解导致错误/警告的原因。

票数 3
EN

Stack Overflow用户

发布于 2018-09-01 13:54:29

我也面临着同样的问题。

即使用2.4替换swagger生成器也没有解决这个问题,我发现的解决办法是将rxjscompat添加到项目中:npm install rxjs-compat@6

请参阅有关讨论的更多详细信息:https://github.com/swagger-api/swagger-codegen/issues/8179#issuecomment-402575414

票数 2
EN

Stack Overflow用户

发布于 2020-11-25 00:55:36

对于我来说,我使用了"swagger-codegen-cli-2.4.0.jar“来生成,并解决了"rxjs”问题,我在命令的末尾添加了以下内容:

代码语言:javascript
复制
--additional-properties ngVersion=6
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50416155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档