Проблема в том, что timer
определен для выдачи числовых значений. Таким образом, source
также будет предполагать, что будут выданы числовые значения. Однако switchMap
не делает никаких предположений о том, какой тип будет испускаться возвращаемой наблюдаемой (отсюда any
). Это означает, что ваш источник переходит от испускания чисел к испусканию чего-либо вообще.
Простое решение это
import { timer, interval } from 'rxjs';
import { switchMap } from 'rxjs/operators';
//emit immediately, then every 5s
const source = <any>timer(0, 5000); //Here, we say that source can emit anything
//switch to new inner observable when source emits, emit items that are emitted
const example = source.pipe(switchMap(() => interval(500)));
//output: 0,1,2,3,4,5,6,7,8,9...0,1,2,3,4,5,6,7,8
const subscribe = example.subscribe(val => console.log(val));