Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular rxjs Observer Generic Type required 1 argument

I am facing following error while using Observers with Observables from rxjs package.

ERROR in src/app/home/home.component.ts(25,57): error TS2314: Generic type 'Observer' requires 1 type argument(s).

I am trying to create my first Observable

const myObservable = Observable.create((observer: Observer) => {
setTimeout(() =>{observer.next('first package');},2000);
setTimeout(() =>{observer.next('second package');},4000);
setTimeout(() =>{observer.next('this does not work');},5000);
 });

Can you suggest, what could be the possible solution ?

like image 973
Gourav Bansal Avatar asked Dec 04 '25 00:12

Gourav Bansal


1 Answers

As @Eldar mentioned in the comment Observer interface expects generic type

interface Observer<T> {
  closed?: boolean;
  next: (value: T) => void;
  error: (err: any) => void;
  complete: () => void;
}

Change your Observer interface to Observer<string>

const myObservable = Observable.create((observer: Observer<string>) => {
   setTimeout(() =>{observer.next('first package');},2000);
   setTimeout(() =>{observer.next('second package');},4000);
   setTimeout(() =>{observer.next('this does not work');},5000);
 });
like image 122
Chellappan வ Avatar answered Dec 06 '25 16:12

Chellappan வ