我正在使用谷歌地图构建一个离子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);
});
});
}
答案 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_infowindow
为boolean
,但没有close
方法。
如果您希望此按住InfoWindow
,请按此键入。如果您没有any
的类型定义,请键入InfoWindow
:
prev_infowindow: InfoWindow;
// OR
prev_infowindow: any;