web-dev-qa-db-fra.com

Typescript: Comment résoudre 'rxjs / Rx n'a pas de membre exporté' SubscriptionLike '

J'essaie de suivre cet exemple ici https://www.youtube.com/watch?v=gxCu5TEmxXE , mais lorsque je fais tsc -p, J'obtiens une erreur. Dois-je importer quelque chose?

ERREUR:

node_modules/@angular/common/src/location/location.d.ts(1,10): error TS2305: Module '"...functions/node_modules/rxjs/Rx"' has no exported member 'SubscriptionLike'.

TS FILE

import "zone.js/dist/zone-node";
import * as functions from "firebase-functions";
import * as express from "express"
import { renderModuleFactory } from "@angular/platform-server"
import * as fs from "fs"

const document = fs.readFileSync(__dirname + "/dist-server/index.html", "utf8");
const AppServerModuleNgFactory = require(__dirname + "/dist-server/main.bundle");

const app = express();
app.get("**", (req, res) => {
    const url = req.path;
    renderModuleFactory(AppServerModuleNgFactory, { document, url }).then(html => {
        res.send(html);
    });
});
exports.post = functions.https.onRequest(app);

[~ # ~] config [~ # ~]

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es2015",
    "rootDir": ".",
    "outDir": "../functions"
  },
  "files": [
    "index.ts"
  ]
}
15
Relm

J'ai fait face au même problème après avoir suivi

suite à ce tutoriel de Djamware

Après avoir beaucoup cherché, j’ai constaté que le paquet Rxjs installé avec les instructions de ce tutoriel n’était pas pris en charge avec Angular 6.

Angular 6 ne fonctionne pas avec RxJS 5.5, mais avec RxJS 6.

npm i rxjs@6

Exécutez la commande ci-dessus dans cli et cela devrait résoudre votre problème. C'est ce qui s'est passé dans mon cas.

12

Je parierais que si vous regardiez dans votre package.json vous verriez beaucoup de versions de paquets betaangular. Vous pouvez soit revenir à la version version publiée , soit si, pour une raison quelconque, vous devez continuer à utiliser la version bêta, vous pouvez modifier ce fichier location.d.ts fichier et remplacez les deux emplacements de SubcriptionLike par Subscription. Encore une fois, c’est un super hacky qui s’efface chaque fois que vous exécutez npm install et uniquement si vous avez besoin de bouger avec le beta pour une raison quelconque. Vos dépendances dans le package.json devrait ressembler à ceci (bien que le mien soit conçu pour ionic):

"dependencies": {
  "@angular/cli": "^1.7.3",
  "@angular/common": "^5.2.9",
  "@angular/compiler": "^5.2.9",
  "@angular/compiler-cli": "^5.2.9",
  "@angular/core": "^5.2.9",
  "@angular/forms": "^5.2.9",
  "@angular/http": "^5.2.9",
  "@angular/platform-browser": "^5.2.9",
  "@angular/platform-browser-dynamic": "^5.2.9",
  "@angular/tsc-wrapped": "^4.4.6",
  "@ionic-native/core": "4.4.0",
  "@ionic-native/splash-screen": "4.4.0",
  "@ionic-native/status-bar": "4.4.0",
  "@ionic/pro": "1.0.17",
  "@ionic/storage": "2.1.3",
  "ionic-angular": "3.9.2",
  "ionicons": "3.0.0",
  "rxjs": "^5.5.6",
  "sw-toolbox": "3.6.0",
  "zone.js": "0.8.18"
}
4
Serj Sagan

La dernière version de rxjs est la version 6.9.0. Pour résoudre ce problème, vous devez mettre à jour le paquet rxjs. courir ng update rxjs

0
sumod badchhape