Generic type Subject<T> requires 1 type argument(s). - Angular

Roxy&#39;Pro picture Roxy'Pro · Jun 29, 2018 · Viewed 24k times · Source

I'm getting data from my service and I've red about it's important to unsubscribe after subscribe, and here is how I did it :

export class RItemComponent implements OnInit {

  apiPath = environment.apiUrl;
  private ngUnsubscribe: Subject = new Subject();

  constructor(private _sharedService: SharedService) { }

  rItems: Product[];

  ngOnInit() {
    this._sharedService.
      getReceiptItem().takeUntil(this.ngUnsubscribe).
      subscribe(products => this.rItems = products);
  }

  ngOnDestroy() {
    this.ngUnsubscribe.next();
    this.ngUnsubscribe.complete();
  }
}

But now I'm getting an error:

Generic type Subject requires 1 type argument(s). subscribe

I don't understand why?

Any kind of help would be awesome, thanks!

Answer

Sachila Ranawaka picture Sachila Ranawaka · Jun 29, 2018

Add a generic type for subject

private ngUnsubscribe: Subject<any> = new Subject();