【发布时间】:2018-01-12 03:32:33
【问题描述】:
我有一个带有 javascript 代码库的项目。我想开始逐渐转向打字稿,并确保现有的 javascript 代码保持在 ES5 级别。 IE。确保将 ES6 功能转换为 ES5。
我认为这可以通过将 tsc 引入构建链来解决。 tsconfig.json 有针对 ES5 的目标,并且 tsc 设置为处理两个 typescript ja javascript 文件。
但显然 tsc 不会将 javascript 文件转换为 ES5 级别。还是我在设置中遗漏了什么?
我的猜测是,我仍然需要为构建链添加 babel,以确保要在浏览器中执行的所有代码都是 ES5 级别的。
下面的简单示例:
tstest.js 包含 ES6 特性:
var arr = ["a", "b", "c"];
console.log(arr.includes("b"));
没有为 javascript 进行转译:
/tmp> tsc -t ES5 -allowJs -outDir ./transpiled tstest.js
/tmp> cat transpiled/tstest.js
var arr = ["a", "b", "c"];
console.log(arr.includes("b"));
【问题讨论】:
-
您是否已将 ES7 库添加到您的 tsconfig 文件中?根据这个线程:github.com/Microsoft/TypeScript/issues/2340 你需要包含库“es7”和“dom”。如果您已添加这些,请在您的问题中添加 tsconfig 文件。
-
TypeScript 不添加任何 polyfill。您必须在您的项目中为
includes添加您选择的 polyfill。 -
@hagner,我现在也尝试添加 lib 定义,但它仍然没有进行编译。我认为 .ts 文件需要这些库以及那里允许的内容
标签: javascript typescript