我正在构建一个离子2应用程序使用谷歌地图。一旦用户单击infowindow外,尝试关闭infowindow。看到很多使用infowindow.close()的例子,但不确定为什么我不能应用它。
错误消息property 'close' does not exist on type never。
类型
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);
});
});
}发布于 2017-08-13 14:53:57
使用以下语句将this.prev_infowindow分配给false:
if(this.prev_infowindow = false ) {
this.prev_infowindow.close(); // error message occurs
}将this.prev_infowindow分配给false使if条件永远不会执行。TypeScript巧妙地推断出了这个错误。
您应该使用==或===进行比较。
另一个原因是,您已经将prev_infowindow键入为boolean,它没有close方法。
如果您想让它保存InfoWindow,请按如下方式键入它。如果没有InfoWindow的类型定义,则将其键入为InfoWindow
prev_infowindow: InfoWindow;
// OR
prev_infowindow: any; https://stackoverflow.com/questions/45661624
复制相似问题