【问题标题】:What does this TypeScript syntax mean?这个 TypeScript 语法是什么意思?
【发布时间】:2018-05-04 16:38:39
【问题描述】:

我正在观看有关 RxJS 的视频,并且遇到了一些我以前从未见过的 TypeScript 语法。它是 RxJS 没关系,这是一个通用问题,但我想我只是补充说它是 RxJS。

这是对super() 的调用,我不明白:

class MyObservable extends Rx.Observable {
    constructor(initialValue) {
        super(observer) => {
            observer.next(initialValue);
            this.observer = observer;
        }
    }
}

视频继续指出,这不是扩展可观察功能的好方法,但无论如何这不是我感兴趣的。我对拨打super() 感兴趣:这里发生了什么?我能想到的最好的方法是它隐藏了基类的构造函数,但我不确定。谁能解释一下?

【问题讨论】:

标签: typescript rxjs


【解决方案1】:

这绝对是一个错字。 constructor for Rx.Observable 接受一个函数参数,它本身接受一个订阅者 - 一个带有“next”(由您的代码确认)和“错误”/“完成”方法的对象,尽管上面的代码中没有使用这些方法。这几乎可以肯定是

class MyObservable extends Rx.Observable {
    constructor(initialValue) {
        super((observer) => {
            observer.next(initialValue);
            this.observer = observer;
        });
    }
}

从视频所描述的关于扩展 Rx 功能的内容来看,这也是有道理的——在将其设置为 this.observer 并让 Rx.Observable 继续做它的事。

【讨论】:

  • 是的,我刚刚检查了 WebStorm,这确实是一个语法错误。很惊讶它居然出现在了视频中。
猜你喜欢
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
  • 2012-07-25
  • 2011-11-13
  • 2014-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多