コードは以下です
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型にプロパティタイマーが存在しない」です。なぜそのようなエラーが発生するのですか?どう思いますか?
これは、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番目のアプローチをお勧めします。
古いバージョンのrxjsはrxjs/Observableの完全なObservableクラスを提供しないため、ライブラリのルートフォルダーからimport Observableにするだけです。
import {Observable} from 'rxjs';