【发布时间】:2020-04-14 09:46:48
【问题描述】:
const of = require('rxjs').of;
const map = require('rxjs/operators').map
of(123).pipe(
map(num => num.toString()),
map(str => str.substring(0,1)),
).subscribe(console.log);
在上面的第二个map 中,str 参数的类型是从返回string 的前一个map 正确推断的。我很好奇打字稿是如何推断第二个地图运算符中的类型的。
这个 RxJS 是不是很好地设计了代码以便它发生?
还是只是 VS 代码对 RxJS 有特殊的 IntelliSense?
【问题讨论】:
-
有点不清楚问题是什么。 rxjs,有打字稿定义文件。您可以检查
pipe和map的 ts 定义(使用 go to definition)并查看它们如何使用泛型来转发类型。如果您对此有具体问题,可以回答,但这对我来说似乎含糊不清。 -
@TitianCernicova-Dragomir:我的假设是
pipe是一种采用可变长度参数的方法,但事实并非如此。这就是为什么我对如何在第二个运算符中推断类型感到困惑的原因。从下面的答案中可以清楚地看出:stackoverflow.com/a/61205100/887149
标签: typescript visual-studio-code rxjs intellisense