首页 > 解决方案 > 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

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

我很感激任何指导。

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

我使用添加rxjs-compat到我的 angular6 项目中

npm install --save-dev rxjs-compat

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

标签: angulartypescriptswaggercodegenrxjs6

解决方案


如果您要从以前的 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

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


推荐阅读