RX JS Subject (). MergeMap (funcThatReturnsObservable) возвращает Observable <any>вместо Subject <any> - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь переместить проект Javascript в Typescript. После изменения расширения файла я получил несколько таких ошибок:

Property 'next' does not exist on type 'Observable<any>'

Тема создана с:

export const foo$ = new Subject().mergeMap(funcThatReturnsObservable)

Где funcThatReturnsObservable:

/**
 * Merges data
 * @param {object} data - data used to make observable
*/
function funcThatReturnsObservable(data) {
  return zip(
     // observable,
     // observable,
  )

и подписка происходит следующим образом:

foo$
  .pipe(
    mergeMap(anotherFuncThatReturnsObsv)
  )
  .subscribe();

Местоположение, которое оно использует следующее, находится в экспорте, так что другие файлы могут вызывать эти события.

export default {
  error(error) {
    foo$.next(console.log(error));
  },
}

Кажется как и Typescript не может увидеть, что foo $ все еще остается темой после mergeMap вверху. Я могу заставить его нажатием as Subject<any>, но это похоже на запах кода. Что я могу сделать, чтобы помочь Typescript увидеть, что это будет тема? Спасибо!

...