Búsqueda de sitios web

angular - swagger codegen --> angular6: error de compilación de observable de rxjs


Al usar Angular 6 y swagger codegen, estoy obteniendo errores del compilador de TypeScript relacionados con rxjs:

No se puede encontrar el módulo 'rxjs-compat/Observable'

Encontré lo siguiente https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md#rxjs-v5x-to-v6-update-guide

Estoy usando swagger-codegen: stable 2.3.1 en una Mac (instalado con brew).

Agradezco cualquier orientación.

Actualizar -----------------------

Agregué rxjs-compat a mi proyecto angular6 usando

npm install --save-dev rxjs-compat

Ahora recibo advertencias del compilador, pero los errores del compilador han desaparecido y el proyecto parece ejecutarse

Respuesta #1

Si estás migrando desde una versión anterior de Angular, sigue la siguiente guía:

https://update.angular.io/

El paquete rxjs-compat sirve para tener compatibilidad con implementaciones anteriores de rxjs. Por ejemplo:

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

Sin embargo, eso debería actualizarse a la nueva implementación que viene con la versión 6. Por ejemplo:

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

Dicho esto. También tienes que cambiar la implementación de tus operadores observables usando pipe. Por ejemplo:

this.sampleService
      .search(
        payload.firstName,
        payload.lastName,
        payload.dateOfBirth
      )
      .pipe(
        map(response => new sampleActions.SearchSuccess(response.json())),
        catchError(error => of(new sampleActions.SearchFail(error)))
      )

Como puedes ver, los operadores map y catchError tienen una implementación diferente, usando el operador pipe.

Quizás puedas compartir una copia de los registros, así será más fácil entender qué está causando errores/advertencias.

Respuesta #2

Yo estaba enfrentando el mismo problema.

Incluso al reemplazar el generador swagger con la versión 2.4 no se solucionó el problema, la solución temporal que encontré fue agregar rxjscompat al proyecto: npm install rxjs-compat@6

Ver más detalles sobre la discusión: https://github.com/swagger-api/swagger-codegen/issues/8179#issuecomment-402575414

Artículos relacionados