为什么在下面的代码中返回interval(500)
会引发以下类型错误?
const source = timer(0, 5000);
const example = source.pipe(switchMap(() => interval(500)));
const subscribe = example.subscribe(val => console.log(val));
类型'UnaryFunction
,Observable >'的参数不能分配给类型'OperatorFunction'的参数。 参数“源”和“源”的类型不兼容。
类型'Observable
'不能分配给类型'Observable '。 属性“源”受保护,但类型“可观察的
”不是从“可观察的 ”派生的类。
这是在Learnrxjs.io上找到的第一个switchMap example。
答案 0 :(得分:1)
问题在于lock.lock()
被定义为发出数字值。因此,timer
还将假设将发射数字值。但是,source
不对返回的可观察对象将发射的类型进行任何假设(因此switchMap
)。这意味着您的来源从发出数字到根本不发出任何东西。
一个简单的解决方案是
any