Typescript - 属性扫描在类型Subject ...上不存在?

时间:2018-05-23 14:58:00

标签: typescript emit subject behaviorsubject

我无法在Visual Studio代码编辑器上编译this代码。首先,我收到了has no exported member 'X', X for BehaviorSubject, Subject之类的错误。 所以,我更改了import语句如下:

import { BehaviorSubject } from 'rxjs';
import { Subject } from 'rxjs';

导致导入错误消失。 但是,现在我在尝试使用tsc命令编译时遇到以下错误:

error: while trying to execute <code>tsc .\06b-rx-store.ts</code> on cmd.

我将emit更改为next,解决了property 'emit' does no exist错误。但property 'scan' does not exist错误仍然存​​在。我认为这与.json文件中的设置有关。但我无法弄清楚应该改变什么设置。

那么,我在这里想念什么?任何帮助深表感谢。如果你得到代码编译,你能描述一下你是怎么做的。

1 个答案:

答案 0 :(得分:2)

emit是一种特定于Angular EventEmitter的方法,目前依赖于RxJS Subject

由于EventEmitter专门用于处理变更检测,因此不建议将其用作Angular应用程序中的通用主题。

EventEmitter emit是主题Subject next方法的包装器,因此emit应替换为next

scan运算符应导入:

import 'rxjs/add/operator/scan';

这已经在链接代码中完成了。