Универсальный тип Subject <T>требует 1 аргумента (ов) типа. - угловой - PullRequest
0 голосов
/ 29 июня 2018

Я получаю данные из своего сервиса, и мне уже известно о том, как важно отписаться после подписки, и вот как я это сделал:

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

Но теперь я получаю сообщение об ошибке:

Универсальный тип Предмет требует 1 аргумента (ов) типа. подписаться

Я не понимаю, почему?

Любая помощь будет отличной, спасибо!

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Класс Subject имеет параметр общего типа в TypeScript. Это означает, что экземпляры этого класса могут быть созданы только путем передачи дополнительного параметра типа, например:

private ngUnsubscribe: Subject<MyClass> = new Subject();
0 голосов
/ 29 июня 2018

Добавить общий тип для темы

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