Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 打字脚本+;谷歌地图API+;infobox.js未捕获类型错误:infobox不是构造函数_Javascript_Typescript_Import_Maps - Fatal编程技术网

Javascript 打字脚本+;谷歌地图API+;infobox.js未捕获类型错误:infobox不是构造函数

Javascript 打字脚本+;谷歌地图API+;infobox.js未捕获类型错误:infobox不是构造函数,javascript,typescript,import,maps,Javascript,Typescript,Import,Maps,使用Google Maps API创建项目Vue.js+类型脚本,尝试将infobox.js(npm package Google Maps infobox window)库导入到控制台中,并在控制台中获取错误: 未捕获的TypeError:InfoBox不是构造函数 库尚未键入,所以所有内容都保留为导入,不需要键入。我尝试了三种方法: 导入*为信息框“谷歌地图信息框窗口” var InfoBox=require('google-maps-InfoBox-window') 使用手动模块/功能声

使用Google Maps API创建项目Vue.js+类型脚本,尝试将infobox.js(npm package Google Maps infobox window)库导入到控制台中,并在控制台中获取错误:

未捕获的TypeError:InfoBox不是构造函数

库尚未键入,所以所有内容都保留为导入,不需要键入。我尝试了三种方法:

  • 导入*为信息框“谷歌地图信息框窗口”
  • var InfoBox=require('google-maps-InfoBox-window')
  • 使用手动模块/功能声明制作*d.ts文件
而且这些操作都没有效果,
InfoBox
constructor仍然没有找到。 在导入infobox.js之前,我已经导入了googlemaps(通过脚本标签)和RichMarker.js(通过require(“”))并且这些都是完美的。 有人能帮忙吗

此外,我还尝试向tsconfig.json添加
“allowJs”:true
,但仍然没有任何结果

代码:


在寻找问题解决方案的过程中,我尝试了很多可能的方法和所有与infobox.js相关的npm包。 最后,我找到了“谷歌地图信息盒”(GoogleMapsInfobox),它没有详尽的描述,但至少有一个是有效的。此外,它甚至还有*.d.ts文件,可以在ts项目中提供适当的导入。 所以,我安装了这个依赖项,并在组件的导入部分添加了它

import InfoBox from 'google-maps-infobox';
并以这种方式使用它

//in some method (function)
let infoBox: InfoBox = new InfoBox({
    content: //some html markup
});
infoBox.setPosition(mapObject.getPosition());
infoBox.open(this.map);
此外,这个包与require()import配合得很好,InfoBox对象的类型除外

//in some method (function)
let infoBox: InfoBox = new InfoBox({
    content: //some html markup
});
infoBox.setPosition(mapObject.getPosition());
infoBox.open(this.map);