swagger codegen --> angular6: rxjs 可观察到的编译错误

swagger codegen --> angular6: rxjs observable compile error

当使用 angular 6 和 swagger codegen 时,我收到与 rxjs:

相关的打字稿编译器错误

Cannot find module 'rxjs-compat/Observable'

我找到了以下内容 https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md#rxjs-v5x-to-v6-update-guide

我在 mac(安装了 brew)上使用 swagger-codegen: stable 2.3.1

感谢任何指导。

更新---------------------

我使用

rxjs-compat 添加到我的 angular6 项目

npm install --save-dev rxjs-compat

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

如果您要从以前的 angular 版本迁移,请遵循以下指南:

https://update.angular.io/

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

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

但是,应该更新到版本 6 附带的新实现。例如:

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

话虽如此。您还必须使用 pipe 更改可观察运算符的实现。例如:

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 运算符。

也许您可以共享一份日志副本,这样会更容易理解导致 errors/warns 的原因。

我遇到了同样的问题。

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

查看更多讨论详情:https://github.com/swagger-api/swagger-codegen/issues/8179#issuecomment-402575414

对于我来说,我使用了“swagger-codegen-cli-2.4.0.jar”来生成,为了解决“rxjs”问题,我在命令的末尾添加了这个:

--additional-properties ngVersion=6