【问题标题】:node_modules/rxjs/ BehaviorSubject has no exported member 'BehaviorSubject'node_modules/rxjs/ BehaviorSubject 没有导出的成员 'BehaviorSubject'
【发布时间】:2018-11-07 05:51:33
【问题描述】:

我正在使用 Angular 服务,但遇到了由 BehaviorSubject 引起的错误。

错误

模块“ng5/node_modules/rxjs/BehaviorSubject”没有导出的成员“BehaviorSubject”。

data.service.ts

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

@Injectable()
export class DataService {

  constructor() { }
}

【问题讨论】:

  • import { BehaviorSubject } from 'rxjs';
  • @Vikas 很好,错误消失了!请你解释一下那是什么?!

标签: angular typescript


【解决方案1】:

如果你想导入所有 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 'rxjs/internal/SomeThing'(将 SomeThing 替换为您需要的内容)

对于运营商,您可以在from 'rxjs/internal/operators/SomeThing'找到它

【讨论】:

  • 如果某些东西被标记为内部,那么我总是觉得它不打算供图书馆的外部用户使用。是否有某种来自 RxJS 的官方文档支持这些内部导入?
  • 我已经在 v11 和 v12 上进行了测试,您面临的问题是什么?
猜你喜欢
  • 2019-05-10
  • 2017-12-29
  • 2018-10-20
  • 2019-11-04
  • 2017-05-04
  • 2018-11-29
  • 1970-01-01
  • 1970-01-01
  • 2021-04-19
相关资源
最近更新 更多