【问题标题】:Why does the Google Maps Map() constructor have side effects?为什么谷歌地图 Map() 构造函数有副作用?
【发布时间】:2020-04-17 12:46:36
【问题描述】:

我一直在从事一个个人 Vue 项目,其中包括一个简单的 Google 地图。

在实现Maps JS API 时,我烦人地不断遇到 ESLint 错误'map' is assigned a value but never used。我明白为什么会出现此错误 - Map() 构造函数返回一个我不需要做任何事情的值:

const map = new google.maps.Map(el, options)

所以我最终只是实现了this Stack Overflow answer 中描述的解决方案来绕过 lint 规则。

如果你使用的是一个设计不佳的库,其中类构造函数有副作用(它不应该),并且你不需要对类的返回值做任何事情,我会禁用它这些行的特定 eslint 规则。

但是,我的问题是,为什么 Google 的 Map() 构造函数是这样设计的?我很难相信这个库会“设计得很糟糕”,但看不出这个实现的原因。

【问题讨论】:

  • a) 老旧和向后兼容 b) 易用性
  • 这个问题似乎跑题了——我们只能猜测原因
  • 感谢您的反馈。抱歉,我应该澄清我问的原因:当我遇到需要抑制规则的 lint 错误时,尤其是在使用像 G Maps 这样广泛实施的库时,我通常认为我正在做一些不好的事情。所以我想获得洞察力来验证我的解决方案。我认为您不必构建 API 就能够提供关于它为何以某种方式设计的答案。
  • 好吧,要么你做错了什么(这里:通过编写什么都不做的代码,并且可以被删除),或者如果代码做了一些有用的事情,那么是库的设计者选择了不好的做法。

标签: javascript google-maps eslint


【解决方案1】:

这不是副作用。它正在返回它的实例。所以你可以进一步拨打methods就可以了

【讨论】:

  • 但是 OP 没有调用任何方法。如果构造不会有任何副作用,代码可以完全删除。
猜你喜欢
  • 2011-03-13
  • 2021-06-03
  • 2016-01-10
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
  • 2011-10-31
相关资源
最近更新 更多