'MouseEvent'类型中不存在属性'coords'.在Angular2-google-maps标记事件中

Ana*_*mal 4 typescript ionic-framework ionic2 ionic3 angular

我添加了angular2-google-maps地图的mapClicked事件.代码如下:

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

}

我在使用"离子服务"服务我的离子2应用程序时遇到编译时错误.

在此先感谢,AB

seb*_*ras 19

这只是Typescript抱怨,因为默认的MouseEvent接口没有coords属性,但是因为你正在使用angular2-google-maps你知道coords属性将在那里(ng2谷歌地图MouseEvent接口)所以你可以通过使用any而不是使用而不是编译时错误MouseEvent像这样:

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

编辑

就像@Bruno Garcia指出的那样,解决这个问题的更好方法是从AGM库导入适当的接口.这样,您就可以使用IDE的类型和自动完成功能来完成该MouseEvent事件.

但是我没有MouseEvent像他在答案中描述的那样导入,而是更喜欢使用别名,以避免与默认的MouseEvent接口混淆:

import { MouseEvent as AGMMouseEvent } from '@agm/core';
Run Code Online (Sandbox Code Playgroud)

然后只使用该别名:

mapClicked($event: AGMMouseEvent) { ... }
Run Code Online (Sandbox Code Playgroud)