无法使用infowindow.close()关闭InfoWindow

时间:2017-08-13 14:50:08

标签: google-maps typescript google-maps-api-3

我正在使用谷歌地图构建一个离子2应用程序。一旦用户在infowindow外部点击,尝试关闭infowindow。使用infowindow.close()查看大量示例,但不确定为什么我无法应用它。

错误讯息property 'close' does not exist on type never

typescrip

  prev_infowindow: boolean = false;

  addInfoWindow(){

  this.http.get(this.baseURI)
  .map(res => res.json())
  .subscribe(data => {

    let infoData = data;
      let content = "<ion-item>" + 
     "<h2>" + infoData.Title + "</h2>"

 let infoWindow = new google.maps.InfoWindow({

 content: content

 });

google.maps.event.addListener(marker, 'click', () => {

  if( this.prev_infowindow ) {
   this.prev_infowindow.close(); // error message occurs
 }

this.prev_infowindow = infoWindow;
infoWindow.open(this.map, marker); 
  });

});

}

1 个答案:

答案 0 :(得分:0)

您使用以下声明将this.prev_infowindow分配给false

if(this.prev_infowindow = false ) {
   this.prev_infowindow.close(); // error message occurs
}

this.prev_infowindow分配给false会使if条件永远不会被执行。 TypeScript巧妙地推断出这个错误。

您应该使用=====进行比较。

另一个问题是,您输入的prev_infowindowboolean,但没有close方法。

如果您希望此按住InfoWindow,请按此键入。如果您没有any的类型定义,请键入InfoWindow

prev_infowindow: InfoWindow;
// OR
prev_infowindow: any;