3

我刚刚通过npm i rxjs@5.0.0-beta.3.

我有以下示例代码:

import {Observable} from "rxjs"

new Observable(o => o.next(42)).filter(() => true);

例如,当使用 ts-node 时,此代码编译得非常好。

但是在 IntelliJ IDEA 中查看这段代码时,filter()找不到操作符。

在 Observable 实例上使用运算符时,也找不到它们。

建议的静态成员Observable是:

  • create()
  • if()
  • throw()

一个实例的建议成员Observable是:

  • _isScalar()
  • forEach()
  • lift()
  • subscribe()

我也尝试只导入我需要的东西,但我的 IDE 仍然告诉我filter()Observable 实例上不存在:

import {Observable} from "rxjs/Observable"
import "rxjs/add/operator/filter"

new Observable(o => o.next(42)).filter(() => true);

有什么建议可以让 IntelliJ IDEA 了解运营商吗?

4

3 回答 3

9

要解决此问题,您需要在 IntelliJ 中将 RxJS 添加为 javascript 库:

  1. 转到设置->语言和框架-> JavaScript ->
  2. 单击添加...
  3. node_modules/rxjs通过单击+按钮添加
  4. 单击所有确定按钮,直到您返回编辑器。

此解决方案经过测试可在 IDEA 2016.1.3 上运行

于 2016-07-21T08:59:11.817 回答
4

请检查IDEA 2016.1.2 或更高版本

注意:目录node_modules不得从项目中排除。
否则,请参阅答案https://stackoverflow.com/a/38499577/1057218

注2:文件package.json必须包含直接依赖(或devdependency)' rxjs'

于 2016-03-25T11:51:42.797 回答
2

接受的答案不起作用。我已经测试了IntelliJ IDEA 2016.2.1 EAP ( ideaIU-162.1447.7) 并且问题仍然存在。

兔子洞是这样的:

  1. 在接受的答案中,您可以找到指向2016.1版本的链接,但这并不能解决问题。
  2. 然后您会看到一条带有IntelliJ bugtracker链接的评论,其中 OP 有第一个/顶部评论。
  3. 在该问题/错误线程的底部,您会发现一条评论IDEA 2016.2 162.426.1 EAP 肯定会解决问题,但事实并非如此。

底线,如果你导入所有 RxJS 必须通过import {Observable} from 'rxjs/Rx';IntelliJ 提供的东西,仍然会抱怨它找不到像.map.filter

于 2016-07-21T07:13:28.560 回答