TS转译:babel vs tsc

8

这是我第一次建立TS项目。我有个疑问:可以使用和配置Babel,也可以只用tsc ..进行转译。

这两种方法的主要区别是什么?


Babel将es6转换为es5或es3。TSC将TypeScript转换为es6、es5或es3。 - Kokodoko
但是例如,可以使用Babel将Typescript转译为es5。 - Tomas Eglinskas
不是的,但我怀疑tsc在内部使用了babel。 - Kokodoko
@Kokodoko 这个不行。 - Evert
你怎么知道的?无论如何,我从未在我的 TypeScript 项目中手动添加过 Babel。这不是必需的。 - Kokodoko
1个回答

10

主要区别在于对TypeScript语言本身的支持。

你可以使用tsc将ES6+转译成旧版本的标准,就像你使用Babel一样,在tsconfig.json中基本上加入"strict": false即可。或者你可以在Babel之上使用类型检查器,如Flow,以实现与TypeScript编译器默认提供的类似效果。

据我所知,tsc不使用Babel - 我曾看到它们从同一源.js文件生成具有不同行为的代码。


1
你能指出TSC和Babel生成不同行为代码的示例或来源吗?这将非常有趣进行分析! - Ma Jerez
2
这里有一个生成可观察差异的示例code。这个有点棘手,因为流行的浏览器对于正确的行为没有达成一致。TS 遵循其中一种行为,而 Babel 则相反。 - MayaLekova

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接