On Feb. 19, State of Frameworks speakers, including many of the best and brightest from the development world, gave us updates on all things frameworks.
Ben Lesh — RxJS Lead, Angular Team — @benlesh
Bug Fixes in 6.4.0
RxJS 6.4.0 was recently released. Many of the changes were minor bug fixes, but there were a few important changes. Several of these were related to TypeScript.
RxJS 6 has always been targeting TypeScript 2.8 and higher. This was the first time RxJS developers used a specific 2.8 feature, however. Users who are using 2.7 may have had trouble and may need to upgrade TypeScript.
Users of the shareReplay feature used to experience a bug in the counting feature, in which everyone could unsubscribe from it but the source would keep going. A new update to shareReplay in RxJS gives the ability to opt out of that. Now, if everyone unsubscribes, it unsubscribes from the source.
For the new version of RxJS, we used a feature from TypeScript 2.8 — conditional types — which provides a way to pull a generic type out of another generic type. This can be used in various spots to fix previous issues for users of Redux Observable.
Also, users have been asking for a long time for a takeWhile inclusive option, which is now available.
Lessons for the Future
The RxJS Core team learned a few major lessons from this last round of changes and updates.
RxJS 7 will remove deprecated APIs and update the types to support TypeScript 3.0 and higher. This puts RxJS in a good position to move over to the smaller version of TypeScript.
The smaller version of RxJS will be Rx 8, while RxJS 7 will see more improvements in types. Well over 60% of RxJS users use TypeScript, so it’s crucial to get that right — sometimes a difficulty in a library that’s functional like this.