5

TypeScript 可以全局定位不同版本的 Javascript - 你可以在转译 ES3、ES5 或 ES6 之间切换。

我们必须支持 IE,所以 ES3 是我们的最低公分母。

然而,优秀的浏览器(如 Chrome)已经支持 ES6,并且能够通过优化运行明显更小的 ES6 代码。

因此,我想从同一个 TypeScript 源中将 ES3 提供给 IE,将 ES6 提供给 Chrome。

  • 有没有办法让 TypeScript 转译多个 JS 文件(可能是*.es3*.es6或类似的东西),以便我们可以选择要服务的版本?(理想情况下在 VS 2015 中)

  • 或者在 C# 中,我可以访问 TypeScript 转译器以在运行时完成该步骤吗?

4

2 回答 2

4

您实际上可以使用命令行 ( ) 指定要转译为哪个版本--target ES3

您还可以指定一个输出目录,这样您就可以输出 ES6 和 ES3 转译的代码,然后选择动态引用哪个(使用旧式 IE ifs)。

于 2016-08-15T08:31:47.023 回答
3

如何使用不同的tsconfig.json文件?

例如,类似:

 - root  
    - ts-source  
    - js-es3  
       - tsconfig.json  
       - js  
    - js-es5  
       - tsconfig.json  
       - js  

然后root/js-es3/tsconfig.json

{
    "compilerOptions": {
        "target": "ES3",
        "outDir": "js",
        "rootDir": "../ts-srouce"
    }
}

root/js-es5/tsconfig.json

{
    "compilerOptions": {
        "target": "ES5",
        "outDir": "js",
        "rootDir": "../ts-srouce"
    }
}

我不是 Visual Studio 用户,所以我不知道如何在tsconfig.json那里支持不同的文件,但即使你不能,也可以使用tsc.

于 2016-08-15T08:33:09.633 回答