【发布时间】:2014-01-21 07:19:52
【问题描述】:
我正在尝试在我正在编写的 TypeScript 应用程序中使用 RxJs 定义。我导入了 defs,现在我正在尝试新的主题。
this.stream = new Rx.Subject();
但是,当我尝试此操作时,出现以下错误。
错误 6 类型 '{ 的值上不存在属性 'Subject' 内部:{ 继承(子:函数,父:函数):函数; addProperties(obj: Object, ...source: Object[]): void; addRef(xs: Rx.IObservable, r: { getDisposable(): Rx._IDisposable; }): Rx.IObservable; };观察者:{ create(onNext: (value: any) => void, onError?: (例外: 任何) => void, onCompleted?: () => void): Rx.IO 观察者; fromNotifier(处理程序:(通知:Rx.INotification) => void): Rx.IObserver; }; }
当我查看此类型的定义时,我可以看到 Subject 类已被定义为接口
export interface Subject {
(): ISubject;
create(observer: IObserver, observable: IObservable): ISubject;
}
谁能告诉我如何创建这个 Subject 类的实例,因为我找不到方法。当前使用 TS 9.1.1。我认为 (): ISubject 可能会这样做,但似乎没有任何影响。
我知道一些建议是定义一个类,但是我需要从基接口实现所有方法,所以这将是巨大的,因为它继承自 IObservable。
【问题讨论】:
-
您无法创建接口。是否在某处定义了
Subject的类? -
这是一个 TS def 文件,RxJs 确实有一个 Subject ctor 函数,你可以更新它,但我在这里与类型系统作斗争。
-
你从哪里得到的 def 文件?它不是 GitHub 上明确类型库中的当前版本。
标签: typescript rxjs