swagger codegen - > angular6:rxjs observable编译错误

问题描述 投票:1回答:2

当使用angular 6和swagger codegen时,我得到与rxjs相关的typescript编译器错误:

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

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

angular typescript swagger codegen rxjs6
2个回答
2
投票

如果要从以前的角度版本进行迁移,请按照以下指南操作:

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运算符具有不同的实现。

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


1
投票

我遇到了同样的问题。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.