无法获取打字稿生成的 js 文件以在 IE11 中运行



我正在使用Visual Studio 2017尝试Typescript。

我在Visual studio 2017中打开了一个空白目录("添加现有网站"(,并添加了index.html和main.ts。

这是我的tsconfig.json文件,基于一般建议:

{
"compilerOptions":
{
"sourceMap": false,
"noImplicitAny": false,
"module": "es2015",
"target": "es3"
},
"compileOnSave": true,
"include":
[
"scripts/**/*"
]
}

在索引中.html我按如下方式添加我的文件:

<script src="scripts/main.js" ></script>

但是当我在IE11中打开页面时,我只显示"语法错误"和行号。转到行号显示导入导出语句

我尝试使用 requirejs,但我遇到其他类型的错误,我尝试更改 tsconfig.json 中的模块目标,但似乎没有任何效果。

如果可能的话,我不希望在我的代码中依赖,但是我必须做什么才能让Typescript生成的javascript代码在IE11中执行?

我什至没有尝试让它像IE8那样工作。

还是IE11不再被视为受支持的浏览器?

我找到了解决方案...

我有这样的代码:

export module ABC {
....
}

在IE11中,由于使用tsconfig设置生成JS的方式,这会产生错误"未知错误导出"。

所以解决方案是用命名空间ABC 替换导出模块 ABC并更新我的 tsconfig.js如下所示:

{
"compilerOptions":
{
"target": "es3", //defines what sort of code ts generates, es5 because it's what most browsers currently UNDERSTANDS.
"module": "none",
"lib":
[
"es2015.promise",
"es5",
"dom",
]
},
"compileOnSave": true,
"include":
[
"scripts/*"
]

}

最重要的是"模块":"无">

花了我很长时间才弄清楚,希望它能帮助别人。

更新 1:

我不得不在编译器选项中添加"lib"部分,以使转译器不会抱怨 Promise、控制台和其他已知关键字。

最新更新