我添加了angular2-google-maps map 的mapClicked事件。代码如下:

mapClicked($event: MouseEvent) {
this.markers.push({
  lat: $event.coords.lat,
  lng: $event.coords.lng,
  draggable: false
});

}

我在使用“ionic serve”服务于ionic 2应用程序时遇到了编译时错误。

提前致谢,
AB

最佳答案

这只是Typescript的提示,因为default MouseEvent interface没有coords属性,但是由于您使用的是angular2-google-maps,因此您知道coords属性将存在(ng2 google maps MouseEvent interface),因此您可以通过仅使用any而不是MouseEvent来避免编译时错误这:

mapClicked($event: any) {
this.markers.push({
  lat: $event.coords.lat,
  lng: $event.coords.lng,
  draggable: false
});

编辑

就像 @Bruno Garcia 指出的那样,解决此问题的更好方法是从AGM库中导入适当的接口(interface)。这样,您可以为该MouseEvent事件使用键入和IDE的自动完成功能。

但是,与其像他在答案中描述的那样导入MouseEvent,还不愿使用,我希望使用别名,以避免与默认的MouseEvent接口(interface)混淆:
import { MouseEvent as AGMMouseEvent } from '@agm/core';

然后只需使用该别名:
mapClicked($event: AGMMouseEvent) { ... }

关于angular - 属性 'coords'在 'MouseEvent'类型上不存在。在Angular2-google-maps标记事件中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42453293/

10-13 00:21