web-dev-qa-db-ja.com

ジェネリック型Subject <T>には1つの型引数が必要です。 -Angular

私は自分のサービスからデータを取得していますが、サブスクライブ後にサブスクライブを解除することが重要であると赤くなっています。

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つの型引数が必要です。申し込む

理由がわかりませんか?

どんな種類の助けも素晴らしいでしょう、ありがとう!

5
Roxy'Pro

Subjectクラスには、TypeScriptのジェネリック型パラメーターがあります。つまり、このクラスのインスタンスは、次のような追加の型パラメーターを渡すことによってのみ作成できます。

private ngUnsubscribe: Subject<MyClass> = new Subject();
8
ggradnig

サブジェクトの汎用タイプを追加します

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