web-dev-qa-db-ja.com

Typescript:「rxjs / Rxにはエクスポートされたメンバー「SubscriptionLike」がありません」の解決方法

ここでこの例を追跡しようとしています https://www.youtube.com/watch?v=gxCu5TEmxXE ですが、tsc -pを実行するとエラーが発生します。インポートする必要があるものはありますか?

エラー:

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ファイル

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

私は次の後に同じ問題に直面しました

djamwareからこのチュートリアルに従ってください

よく検索した結果、このチュートリアルの手順でインストールされたRxjsパッケージはAngular 6でサポートされていないことがわかりました。

Angular 6はRxJS 5.5では動作しませんが、RxJS 6では動作します。

npm i rxjs@6

CLIで上記のコマンドを実行すると、問題が解決するはずです。私の場合はそうでした。

package.jsonを見ると、多くのbetaangularパッケージバージョンが表示されるはずです。 リリースバージョン にダウングレードするか、何らかの奇妙な理由でベータバージョンを使い続ける必要がある場合は、そのlocation.d.tsファイルを編集して、SubcriptionLikeは、そのファイルでSubscriptionだけに使用されます。繰り返しますが、これは非常にハッキングされ、npm installを実行するたびに消去されます。何らかの理由でbetaをいじる必要がある場合にのみ使用してください。 package.jsonの依存関係は次のようになります(ただし、私のものは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

Rxjsの最新バージョンは6.9.0です。この問題を修正するには、rxjsパッケージを更新する必要があります。 ng update rxjsを実行します

0
sumod badchhape