在Google Maps Javascript API示例中,我看到他们在HTML中有类似的内容:

<script type="module" src="./index.ts"></script>

在TS/JS脚本的末尾有一个空的export语句.

let map;
function initMap() {
    map = new google.maps.Map(document.getElementById("map"), {
        center: { lat: -34.397, lng: 150.644 },
        zoom: 8,
    });
}
window.initMap = initMap;
export {};

我没有在MDN上看到任何空导出的例子或提及,所以我想知道是否有人知道它是如何工作的.如果导出为空,脚本如何知道如何运行它.

推荐答案

这看起来像是TypeScript中的某些内容;它与JavaScript无关.


如果出现任何一种情况,则需要在文件中输入import/export.

  1. 正在使用下面的标志调用TypeScript文件.

    --isolatedModules
    
  2. tsconfig.json文件具有以下密钥.

    {
      "isolatedModules"
    }
    

根据typescriptlang.com,它指出:

如果设置为isolatedModules,则所有实现文件都必须是模块(这意味着它具有某种形式的import/export).如果任何文件不是模块,就会发生错误.

如果try 使用--isolatedModules标志运行TypeScript文件,会出现如下错误.

❌ '无法在"--isolatedModules"下编译"input.tsx",因为它被视为全局脚本文件.添加importexport或空的"export {}"语句,使其成为模块.


正如上面的错误所述,这是在不添加任何不必要的import条语句和/或export条语句的情况下解决问题的最简单方法,最容易export个空对象({}),如下所示.

export {};

总之,空对象export在JavaScript(或者没有--isolatedModules标志的TypeScript)中不会做任何事情.然而,当使用--isolatedModules标志运行时,它很方便.

Google Maps JavaScript API示例可能已经为这种情况做好了准备,以防有人复制并粘贴代码,从而避免出错.

Javascript相关问答推荐

我试图实现用户验证的reduxstore 和操作中出了什么问题?

窗口.getComputedStyle()在MutationObserver中不起作用

IMDB使用 puppeteer 加载更多按钮(nodejs)

角色 map 集/spritebook动画,用户输入不停止在键上相位器3

使用i18next在React中不重新加载翻译动态数据的问题

在我的html表单中的用户输入没有被传送到我的google表单中

PDF工具包阿拉伯字体的反转数字

我在Django中的视图中遇到多值键错误

将内容大小设置为剩余可用空间,但如果需要,可在div上显示滚动条

如何在ASP.NET项目中使用Google Chart API JavaScript将二次轴线值格式化为百分比

使用js构造一个html<;ath&>元素并不能使其正确呈现

环境值在.js文件/Next.js中不起作用

<;img>;标记无法呈现图像

Google脚本数组映射函数横向输出

Phaser3 preFX addGlow不支持zoom

图表4-堆叠线和条形图之间的填充区域

为什么NULL不能在构造函数的.Prototype中工作

使用jQuery每隔几秒钟突出显示列表中的不同单词

如何从嵌套的json中获取最大值

鼠标进入,每秒将图像大小减小5%