私が書いている TypeScript アプリケーションで RxJs 定義を使用しようとしています。定義をインポートしましたが、現在、件名を新しくしようとしています。
this.stream = new Rx.Subject();
ただし、これを試してみると、次のエラーが発生します。
エラー 6 プロパティ 'サブジェクト' は型 '{ の値に存在しません。addProperties(obj: オブジェクト、...ソース: オブジェクト[]): void; addRef(xs: Rx.IObservable, r: { getDisposable(): Rx._IDisposable; }): Rx.IObservable; }; オブザーバー: { create(onNext: (value: any) => void, onError?: (exception: any) => void, onCompleted?: () => void): Rx.IObserver; fromNotifier (ハンドラ: (通知: Rx.INotification) => void): Rx.IObserver; }; }
この型定義を見ると、サブジェクト クラスがインターフェイスとして定義されていることがわかります。
export interface Subject {
(): ISubject;
create(observer: IObserver, observable: IObservable): ISubject;
}
方法が見つからないので、この Subject クラスのインスタンスを作成する方法を教えてください。現在TS 9.1.1を使用しています。私は(): ISubjectがそれを行うかもしれないと思ったが、何の影響もないようだ。
代わりにクラスを定義することをお勧めしますが、基本インターフェイスからすべてのメソッドを実装する必要があるため、IObservable から継承するため、これは巨大になります。