angular - node_modules/rxjs/BehaviorSubject 没有导出成员 'BehaviorSubject'

标签 angular typescript

我在使用 Angular 服务时遇到了一个由 BehaviorSubject 引起的错误。

错误

Module '"ng5/node_modules/rxjs/BehaviorSubject"' has no exported member 'BehaviorSubject'.

data.service.ts

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';

@Injectable()
export class DataService {

  constructor() { }
}

最佳答案

如果你想导入所有的 RxJS 就这样做:

import { BehaviorSubject } from 'rxjs';

如果你只需要 BehaviorSubject :

import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';

编辑:解释

在 ES6/TypeScript 上,所有 import 都与 export 关键字相关。如果继续 node_modules/rxjs/index.d.ts,您将看到所有导出的类。

这意味着可以将在此文件中导出的内容导入为:import { SomeThing } from 'rxjs';

但是,您生成的包文件将包含所有 RxJS 内容,包括该库的不必要部分。

为了避免这种情况,我建议你导入 from : from 'rxjs/internal/SomeThing' (用你需要的替换 SomeThing)

对于运算符,您可以在 from 'rxjs/internal/operators/SomeThing' 上找到它

关于angular - node_modules/rxjs/BehaviorSubject 没有导出成员 'BehaviorSubject',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50569703/

相关文章:

javascript - 如何在 Angular 5 中集中来自根组件的深层嵌套输入?

javascript - 缺少 Express SSL 身份验证功能?

typescript - 异步不工作 Atom TypeScript

javascript - Angular 2 组件自定义属性在构造函数中为 null

angular - 将 .Net Core Angular 6 发布到 Azure 时出错

git - Angular 4+ 协助 : Sharing Services across projects

html - 如何在 Angular 6 中设置背景图像?

typescript - 找不到模块 'vuelidate' 的声明文件

html - Bootstrap 3 : two button on a row

reactjs - TSLint - 防止错误 : The key is not sorted alphabetically