【发布时间】:2022-07-10 01:01:47
【问题描述】:
最近我重构了一些代码,并在之前使用普通对象的地方引入了一个 Map 对象。
我使用的是 Typescript,所以每当我做一些愚蠢的事情时,我都会依赖编译器对我大喊大叫,但在这种情况下,我的更改引入了一些错误,因为我仍在调用 Object.values(mymap)。
这不是 Typescript 问题,因为这是 Node REPL 的行为方式:
> const somemap = new Map([['a', 1],['b', 2]])
undefined
> Object.values(somemap)
[]
> somemap.values()
[Map Iterator] { 1, 2 }
>
如果结果是空数组而不是实际值,为什么我可以在 Map 上调用 Object.values()?如果编译器不能帮助我们,我认为 ESLint 规则可以吗?
这修复了它[...somemap.values()],但这不是重点。我希望得到保护,不会轻易犯这样的错误。
【问题讨论】:
-
如果不是评论,我会接受它作为答案;)
标签: javascript typescript eslint