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

时间:2018-09-23 15:06:14

标签: javascript typescript visual-studio-2017

我正在使用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中打开页面时,我只显示“语法错误”和行号。转到行号显示 import export 语句

我尝试使用requirejs但遇到其他类型的错误,并且尝试更改tsconfig.json中的 module target ,但似乎没有工作。

如果可能的话,我完全不需要我的代码中的依赖关系,但是我要怎么做才能让Typescript生成的javascript代码在IE11中执行?

我什至没有尝试过使其能够工作到IE8。

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

1 个答案:

答案 0 :(得分:0)

我找到了解决方法...

我有这样的代码:

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,控制台和其他已知关键字。