angular - node_modules/rxjs/ BehaviorSubject 没有导出的成员 'BehaviorSubject'
问题描述
我正在使用角度服务,但我遇到了一个由BehaviorSubject
.
错误
模块“ng5/node_modules/rxjs/BehaviorSubject”没有导出的成员“BehaviorSubject”。
数据服务.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 'rxjs/internal/SomeThing'
将 SomeThing 替换为您需要的内容)
对于运营商,您可以在from 'rxjs/internal/operators/SomeThing'
推荐阅读
- java - 为什么 flatMap 后采集会改变 Stream 处理顺序?
- silverstripe - SilverStripe Ajax 和页面控制器
- ruby-on-rails - 如何在不更改这些页面上的任何内容的情况下将模板化网页包含到 ruby on rails 应用程序中
- java - 有以下三种方法
- javascript - How to get(extract) Quill editor icon in .jpg/.png format? (they only have SVG format)
- spring - Spring 3 与 spring-data-jpa
- c# - 通过 C# 获取 Json 列差异
- shell - 如何优化以下 shell 命令以快速获得输出?
- reporting-services - 如何使用 Matrix 而不是 tablix 交换这些列?
- c++ - 将直接字符串传递给C++中的模板