Related: <https://github.com/ReactiveX/rxjs/issues/4221>
<https://github.com/ReactiveX/rxjs/issues/5139> Looking at docs for other Rx implementations for statically typed languages, e.g. RxJava and RxSwift, `pipe` doesn't seem to be in the picture, but `Transformer` and `compose` are a thing in RxJava. RxJS started out implemented in plain JavaScript, gained TypeScript typings leading on the way to RxJS v5, and was re/implemented in TypeScript for v5. I could be totally wrong, but I'm guessing some of the design of the v5+ impl takes into consideration JS-only devs that don't care about TS, devs that use it exclusively, and others in the middle.
