这种TypeScript语法是什么意思?

时间:2018-05-04 16:38:39

标签: typescript rxjs

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

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

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

视频继续指出这不是扩展可观察功能的好方法,但这并不是我感兴趣的。我对super()的电话感兴趣:这里发生了什么?我能想到的最好的是它正在影响基类的构造函数,但我不确定。任何人都可以澄清吗?

1 个答案:

答案 0 :(得分:2)

这绝对是一个错字。 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并让onload = function() { document.getElementById('myCheck').addEventListener('change', function(e) { e.target.disabled = (getCookie('myCheck') == 1); } document.getElementById('myCheck').checked = (getCookie('myCheck') == 1); } 继续执行其操作之前,向观察者传递一个额外的初始值。