node_modules has exported angular npm rxjs rxjs-compat

angular - has - rxjs/Suscripción no tiene miembro exportado ''Suscripción''



rxjs angular (3)

Actualicé mi proyecto angular y todas mis dependencias a la última versión. Sin muchos problemas resolví la mayoría de los problemas de dependencia, pero todavía estoy atascado en RxJs. Aquí está mi package.json:

"dependencies": { "@angular-devkit/build-angular": "^0.6.0", "@angular/animations": "^6.0.0", "@angular/common": "^6.0.0", "@angular/compiler": "^6.0.0", "@angular/core": "^6.0.0", "@angular/forms": "^6.0.0", "@angular/http": "^6.0.0", "@angular/platform-browser": "^6.0.0", "@angular/platform-browser-dynamic": "^6.0.0", "@angular/router": "^6.0.0", "angular-bootstrap-md": "^6.0.1", "core-js": "^2.5.5", "font-awesome": "^4.7.0", "rxjs": "^6.1.0", "zone.js": "^0.8.26" }, "devDependencies": { "@angular/cli": "~6.0.0", "@angular/compiler-cli": "^6.0.0", "@angular/language-service": "6.0.0", "@types/jasmine": "~2.8.3", "@types/jasminewd2": "~2.0.3", "@types/node": "~6.0.60", "codelyzer": "^4.0.1", "electron": "^1.8.3", "jasmine-core": "~2.8.0", "jasmine-spec-reporter": "~4.2.1", "karma": "~2.0.2", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "^1.4.2", "karma-jasmine": "~1.1.2", "karma-jasmine-html-reporter": "^1.0.0", "protractor": "~5.3.1", "ts-node": "~6.0.2", "tslint": "~5.10.0", "typescript": "~2.7.2"

Solo estoy importando a módulos de RxJs:

import { fromPromise } from ''rxjs/observable/fromPromise''; import { Subscription } from ''rxjs/Subscription'';

Ambos están dando el mismo error:

[ts] Module ''"***/node_modules/rxjs/Subscription"'' has no exported member ''Subscription''.

Es exactamente lo mismo para fromPromise . Aquí está el mensaje de error que recibo de Subscribtion.d.ts (no he modificado el código de ninguna manera)

ACTUALIZAR:

Las respuestas a continuación solucionaron el problema con la suscripción, pero desde fromPromise todavía da el mismo problema a pesar de que se exporta correctamente:

export * from ''rxjs-compat/observable/fromPromise'';


Hay muchos cambios importantes en RxJS 6. Por ejemplo, los métodos de prototipo como

myObservable.map(data => data * 2)

no funcionará más y debe ser reemplazado por

myObservable.pipe(map(data => data * 2))

Todos los detalles se pueden encontrar aquí: https://github.com/ReactiveX/rxjs/blob/master/docs_app/content/guide/v6/migration.md

Hasta que haya solucionado todos los cambios de última hora, puede hacer que su código anterior vuelva a funcionar con rxjs-compat ( https://github.com/ReactiveX/rxjs/tree/master/compat ).

Este paquete es necesario para obtener compatibilidad hacia atrás con RxJS anterior a la versión 6. Contiene las importaciones para agregar operadores a Observable.prototype y los métodos de creación a Observable .

Escribe esto para instalarlo:

npm install -s rxjs-compat


Puedes arreglarlo con esto:

importar { desde } desde ''rxjs'';

Y, en lugar de: return Observable.fromPromise (nueva Promesa ((resolver, rechazar) => {

Ahora solo haz:

volver de (nueva Promesa ((resolver, rechazar) => {

Lo mismo se aplica a Observable.