Исправляем ошибку ReferenceError: Rx is not defined.
Вместо удаленного импорта:
import rx from "https://unpkg.com/rxjs/bundles/rxjs.umd.min.js";
Скачайте к себе скрипт в директорию vendor и поменяйте путь на:
import rx from "../vendor/rxjs.umd.min.js";
В Javascript надо предусмотреть низкоуровневые ошибки (Warning/Notice/Deprecated), как в PHP !
Вместо «ReferenceError: …is not defined» можно выбрасывать низкоуровневую (не фатальную) ошибку «Notice (Warning): …is not defined» и возвращать null или undefined. В принципе исходный код JS несложно таким образом переработать.
Как минимум нужны такие не фатальные ошибки, встраиваемые разработчиками языка:
«Notice: A non well formed numeric value encontered» (при математической операции использовано числовая строка вместо чистого числа)
«Notice: A non-numeric value encontered» (использовано не-число, например, NaN, строка, содержащая что-то кроме цифр, массив, объект, булево значение и т.п.)
«Notice: Division by zero»
«Notice: … is not defined» (обращение к неинициализированной переменной, возвращать null или undefied, при присвоении ей чего-либо автоматически инициализировать как let)
«Notice: Undefined variable or property: …» (обращение к переменной без значения или несуществующему свойству)
«Notice: Undefined index: …» (обращение к несуществующему элементу массива)
«Notice: DOM-element «…» not found» (если метод querySelector и подобные не найдут элемент и вернут null)
Сообщения об устаревших функциях, методах и конструкциях, например, «Deprecated: … is deprecated, use …»
«Warning: Cannot read property «…» of non-object» (попытка обратиться к undefined, null или булеву значению как к объекту и прочитать свойство, возвращать undefined)
«Warning: Cannot set property «…» of non-object» (попытка обратиться к undefined, null или булеву значению как к объекту и записать свойство)
Методы querySelector, querySelectorAll, getElementById и т.п. пусть вместо DOMException выбрасывают Warning и возвращают null и т.п.
Ещё одна грубая ошибка Javascript, так и не устранённая — нет отдельного оператора конкатенации строк.
Можно предусмотреть для этого, например, такое сочетания символов:
.
Например
console.log("abc" + "def"); // Notice: A non-numeric..., Notice: A non-numeric..., NaN