【问题标题】:Angular js 2 'node_modules/rxjs/Observable"' has no exported member 'Observable'. import ObservableAngular js 2 'node_modules/rxjs/Observable"' 没有导出的成员 'Observable'。导入 Observable
【发布时间】:2018-10-15 17:54:24
【问题描述】:

我在 Node_Modules 包中的 Auth.d.ts 文件中遇到错误。

[ts] 模块“node_modules/rxjs/Observable”没有导出的成员“Observable”。 导入 Observable

为 Auth.d.ts 文件找到以下代码:

import * as firebase from 'firebase/app';
import 'firebase/auth';

import { Observable } from 'rxjs/Observable';
import { FirebaseApp } from '../app/index';
export declare class AngularFireAuth {
    app: FirebaseApp;
    auth: firebase.auth.Auth;
    authState: Observable<firebase.User>;
    idToken: Observable<firebase.User>;
    constructor(app: FirebaseApp);
}
export declare function FirebaseAuthStateObservable(app: FirebaseApp): Observable<firebase.User>;
export declare function FirebaseIdTokenObservable(app: FirebaseApp): Observable<firebase.User>;

我安装了“npm install @reactivex/rxjs”这个包,即使这样我也遇到了错误

【问题讨论】:

  • 我从 Angular 5 升级到 Angular 6 后遇到同样的错误。你升级 rxjs 了吗?
  • 是的,我更新了 RXJS

标签: angular


【解决方案1】:

如果您的 Angular 版本是 6 或更高版本。

在下面使用:

从“rxjs/operators”导入 { take, map };

从“rxjs/observable/timer”导入{ timer };

安装 - npm install --save rxjs-compat

还有具有其他功能(Take、Map)的用户管道。

定时器(0, 10) .pipe(采取(1000)) .pipe(map(() => x));

【讨论】:

    【解决方案2】:
    import { Observable } from 'rxjs';
    

    并安装

    npm i rxjs-compat
    

    【讨论】:

      【解决方案3】:

      npm i rxjs-compat

      请将这些添加到根文件夹

      你的问题肯定会解决

      【讨论】:

        【解决方案4】:

        试试npm install rxjs-compatyarn add rxjs-compat

        这对我有用。

        【讨论】:

        • 这是上述步骤之后需要的额外步骤
        【解决方案5】:

        尝试将其更改为:

        import { Observable } from 'rxjs';
        

        【讨论】:

        • 是的,上面一行已经完成,但仍然面临同样的问题
        • 这确实解决了我的问题,希望它也对你有用。确保您收到相同的错误,而不是与 Of 相关的其他错误。
        • 尝试使用最新的库,这适用于 angularjs 4.0
        【解决方案6】:

        如果您使用的是 Angular 版本 6,那么您可以使用

        // 创建和实用方法

        import { Observable, Subject, pipe } from 'rxjs';
        

        // 运算符都来自rxjs/operators

        import { map, takeUntil, tap } from 'rxjs/operators';
        

        【讨论】:

          【解决方案7】:

          您必须降级“rxjs”才能使用当前的“firebase”包。

          新版本的 'rxjs' 中的导入发生了变化,firebase 目前仅与 5.x.x 版本的 RxJs 兼容。

          更改您的 package.json 文件以使用兼容版本的 rxjs:

          "rxjs": "5.6.0-forward-compat.4"
          

          然后重新运行 npm install:

          npm 我

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-09-25
            • 2018-10-19
            • 1970-01-01
            • 2018-11-18
            • 2019-03-07
            • 2020-04-15
            • 2019-06-09
            • 2017-03-16
            相关资源
            最近更新 更多