1

我正在尝试在我正在编写的 TypeScript 应用程序中使用 RxJs 定义。我导入了 defs,现在我正在尝试新的主题。

this.stream = new Rx.Subject();

但是,当我尝试此操作时,出现以下错误。

错误 6 属性 'Subject' 不存在于类型 '{ Internals: { inherits(child: Function, parent: Function): Function; addProperties(obj: Object, ...source: Object[]): 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(handler: (notification: Rx.INotification) => void): Rx.IObserver; }; }

当我查看类型定义时,我可以看到 Subject 类已被定义为接口

export interface Subject {
    (): ISubject;

    create(observer: IObserver, observable: IObservable): ISubject;
}

有人可以告诉我如何创建这个 Subject 类的实例,因为我找不到办法。当前使用 TS 9.1.1。我认为(): ISubject可能会这样做,但似乎没有任何影响。

我知道一些建议是定义一个类,但是我需要从基接口实现所有方法,所以这将是巨大的,因为它继承自 IObservable。

4

1 回答 1

1

使用最新版本的rx.js 输入来自肯定类型这工作。更新你的定义是要走的路。

您也可以在 TypeScript Playground 上试用它——您需要粘贴来自“绝对类型”的代码来测试它(此处似乎不再允许使用指向操场的长链接)。

var x = new Rx.Subject();
于 2014-01-08T17:07:07.803 回答