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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法获取打字稿生成的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/**/*"
    ]
}

在index.html中我添加我的文件如下:

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

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

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

如果可能的话,我不想在我的代码中使用依赖项,但是我需要做些什么来获取在IE11中执行的Typescript生成的javascript代码?

我甚至都没有试过让它像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,控制台和其他已知关键字。

以上是关于无法获取打字稿生成的js文件在IE11中运行的主要内容,如果未能解决你的问题,请参考以下文章

无法在打字稿构建中包含 .key 文件

为我的反应打字稿组件库生成/维护打字稿定义文件

无法重新声明块范围变量(打字稿)

如何在反应打字稿中从json文件中获取和显示数据

动态生成的网格无法在 Angular 2 打字稿中拖动

无法在 VS Code 中调试当前的打字稿文件,因为找不到相应的 JavaScript