web-dev-qa-db-fra.com

Erreur: propriété timer n'existe pas sur type typeof Observable

Le code est ci-dessous

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);
   }
}

Mais je reçois une erreur. L'erreur est dans la ligne suivante: 

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

La définition de l'erreur est "propriété timer n'existe pas sur type typeof Observable" Pourquoi est-ce que je reçois une telle erreur?

6
osmnfrkn61

C'est parce que vous n'avez pas appliqué la méthode timer au prototype Observable.

Mise à jour: Rxjs 6.0.0

Importez la méthode de création en tant que fonction pure statique:

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

Réponse originale:

Vous avez 2 options:

1) Appliquez la méthode avec:

import 'rxjs/add/observable/timer';

2) Importer l'opérateur en tant que fonction pure statique:

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

Personnellement, je recommanderais la 2ème approche.

17
Jota.Toledo

tout ce que vous avez à faire est de importer Observable depuis le dossier racine de la bibliothèque car les anciennes versions de rxjs ne fournissent pas la classe Observable complète dans rxjs/Observable

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