我添加了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/