RxJS switchMap возвращает T вместо Observable <number> - PullRequest
0 голосов
/ 06 февраля 2019

Я не могу заставить RxJS switchMap возвращать правильный тип.Typescript говорит: Type 'T' is not assignable to type 'number'. Как я могу изменить тип так, чтобы он был правильным?

Мой счетчик остановки / пуска работает нормально, когда я набираю значение 'any', но я хочу сделать это правильно :)

Вот ссылка на живой пример на stackblitz.

Но реальная проблема в tap((count: number)

private counter$: Observable<number> = this.isCounting$.pipe(
    switchMap(isCounting => isCounting ? this.updateCount() : of(this.count)),
    tap((count: number) =>  {
      this.displayCount(count)
    })
)

Хотелось бы, чтобы Typescriptсказать, что тип есть, но при наведении tap((count: number) он говорит:

[ts] Аргумент типа 'MonoTypeOperatorFunction' не может быть назначен параметру типа 'OperatorFunction'.

Типы параметров«источник» и «источник» несовместимы.Тип «Наблюдаемый» нельзя назначить типу «Наблюдаемый».Тип «Т» не может быть назначен типу «число».[2345]

Обновление: в TS 2.9.2 ошибки нет, в TS 3.2.2

ошибка
...