Мы столкнулись с проблемой при обновлении нашего приложения до RxJs 6 (с помощью rxjs-compat). Ссылочная библиотека, которая все еще находится на RxJs 5, использует ErrorObservable в качестве возвращаемого типа метода.
public handleError(error: Error): ErrorObservable {
...
return Observable.throw('some error message');
}
На данный момент ErrorObservable не является универсальным типом в RxJs: https://github.com/ReactiveX/rxjs/blob/5.5.11/src/observable/ErrorObservable.ts
export class ErrorObservable extends Observable<any> {
...
}
Это изменилось с RxJs 6
(см. https://github.com/ReactiveX/rxjs/blob/master/compat/observable/ErrorObservable.ts)
export class ErrorObservable<T> extends Observable<T> {
static create<T>(error: any, scheduler?: SchedulerLike) {
return throwError(error, scheduler);
}
}
Что, конечно же, приводит к ошибке компиляции:
ERROR in ... : error TS2314: Generic type 'ErrorObservable<T>' requires 1 type argument(s).
Это случай, который не рассматривается в rxjs-compat, или это проблема с определением типа в rxjs-compat?






Взгляните на раздел срочных изменений
All observable classes (https://github.com/ReactiveX/rxjs/tree/5.5.8/src/observable) have been removed from v6, in favor of existing or new operators that perform the same operations as the class methods. For example,
ArrayObservable.create(myArray)can be replaced byfrom(myArray), or the new operatorfromArray()
Похоже, вам следует использовать функцию throwError вместо класса ErrorObservable.