web-dev-qa-db-ja.com

エラー:タイプtypeof Observableにプロパティタイマーが存在しません

コードは以下です

import {Component} from 'angular2/core';
import {Observable} from 'rxjs/Rx';

@Component({
selector: 'my-app',
template: 'Ticks (every second) : {{ticks}}'
})
export class AppComponent {
   ticks =0;

   click(){
      let timer = Observable.timer(2000,1000);
      timer.subscribe(t=>this.ticks = t);
   }
}

しかし、エラーが発生しています。エラーは次の行にあります。

let timer = Observable.timer(2000,1000);

エラーの定義は、「typeof Observable型にプロパティタイマーが存在しない」です。なぜそのようなエラーが発生するのですか?どう思いますか?

8
osmnfrkn61

これは、timerメソッドをObservableプロトタイプにパッチしていないためです。

更新:Rxjs 6.0.

作成メソッドを静的な純関数としてインポートします。

import { timer } from 'rxjs';
let timer$ = timer(2000,1000);

元の回答:

次の2つのオプションがあります。

1)メソッドに以下をパッチします。

import 'rxjs/add/observable/timer';

2)演算子を静的な純関数としてインポートします。

import { timer } from 'rxjs/observable/timer';
let timer$ = timer(2000,1000);

個人的には、2番目のアプローチをお勧めします。

20
Jota.Toledo

古いバージョンのrxjsはrxjs/Observableの完全なObservableクラスを提供しないため、ライブラリのルートフォルダーからimport Observableにするだけです。

import {Observable} from 'rxjs';
0
Noman Yaqoob