【问题标题】:Why are rxjs/Observable functions like range not available?为什么像范围这样的 rxjs/Observable 函数不可用?
【发布时间】:2016-11-28 02:31:23
【问题描述】:

我的 package.json 有 rxjs 依赖:

"rxjs": "5.0.0-beta.6",

我已经在我的打字稿代码中导入了它。

import {Observable} from "rxjs/Observable";

我希望我能够在 Observable 上使用像 range 这样的函数。 http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-range

但它们根本没有出现在自动完成中。如果我还是添加它(只是为了检查),它会给我一个错误:Error TS2339: Property 'range' does not exist on type 'typeof Observable'

let x = Observable.range(1,10);  // Error! range does not exist on Observable
let y = Observable.of([1,2,3]);  // this is ok.

我做错了什么或者我对这个库有什么误解?

附言我将它用作 ionic2 项目的一部分。

【问题讨论】:

  • 您可能遇到与this question 相同的问题。尝试`import 'rxjs/operator/range'。
  • 看起来是这样。我能够添加一些其他运算符。但不是范围。找不到模块“rxjs/operator/range”。尝试导入'rxjs/add/operator/range',但再次出现同样的错误。我们需要在 package.json 中添加其他依赖项吗?
  • 糟糕,这是一个错字。我的意思是import 'rxjs/add/observable/range'。你可以看到文件树hereadd 将向Observable 添加一个属性。没有它,您将直接导入该函数。

标签: typescript rxjs observable


【解决方案1】:

注意:可以在这里查看详细信息-> Anguar RxJS - Observable - Range 你可以试试这个。

import { range } from 'rxjs';

let x = range(1, 100);

在你的 app.component.ts 中的 Angular 中,你可以像这样导入它

import { range } from 'rxjs';

然后像这样使用它

constructor(){
    const observable: Rx.Observable<number> = range(0, 100);
}

谢谢

【讨论】:

    【解决方案2】:

    嗨,我的朋友刚刚导入“app.module.ts”。

    import 'rxjs/Rx';

    【讨论】:

    • 其实不,不要那样做。而是只导入您需要的部分。
    • 膨胀警报!要节省大量捆绑空间,请使用 import 'rxjs/add/observable/... 进行精确导入。具体路径请参见树形视图here
    • 这不是办法。请考虑遵循文档。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 2013-05-24
    相关资源
    最近更新 更多