30

I'm trying to use the interval method of an observable but I keep getting the error

 Property 'interval' does not exist on type 'Observable<any>'.

I added these imports:

import "rxjs/Rx";
import "rxjs/add/observable/interval";
import "rxjs/observable/IntervalObservable";

5 Answers 5

94

You need to import the Observable class this way to be able to use the interval method:

import {Observable} from 'rxjs/Rx';

or

import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/interval';
Sign up to request clarification or add additional context in comments.

7 Comments

From the error message you can already understand that I have the Observable class imported... And Like I said in my question I already have the import 'rxjs/add/observable/interval'; imported.
import {Observable} from 'rxjs/Rx'; works for sure ;-) It's this for the other approach:import 'rxjs/add/observable/interval';.
The observable.d.ts doesn't even contain the interval method as of angular2 beta, so that makes no sense, in any case that does not solve the problem as I already did that before opening the question.
Which version do you use Angular / Rxjs? It works for me Angular2 RC1 and Rxjs 5.0.0-beta.6...
I tried to use it a a non static method, for the life of me I cant understand why would you make this a static method.
|
22

If you want to create an interval (Observable) with rxjs v6.2.1:

import { interval } from 'rxjs';
// instead of:
// import { Observable } from 'rxjs/Observable';
// import 'rxjs/add/observable/interval';

const counter = interval(1000); 

// instead of:
// const counter = Observable.interval(1000);

Comments

1

It's possible too, for:

"rxjs": "6.3.3"
"rxjs-compat": "^6.5.5"

import { Component, OnInit } from '@angular/core';
import { interval } from 'rxjs';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {

  constructor() { }

  ngOnInit() {
    const myNumber = interval(1000);
    myNumber.subscribe(
      (number: number) => {
        console.log(number);
      }
    );
  }

}

Comments

0

import {Observable} from 'rxjs/Observable';
import 'rxjs/Rx'

  printX:number;
  ngOnInit() {
    const myInterval = Observable.interval(1000);
    myInterval.subscribe((x : number)=>{
      this.printX=x;
    });

    }

1 Comment

How is this any different from Thierry Templier's answer?
0
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/interval';
//This would help 'rxjs/add/observable/interval'
//import interval from 
ngOnInit() {
    const myNumber = Observable.interval(1000);
    myNumber.subscribe(
      (number: number) => {
        console.log(number);
      }
    );

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.