编程语言
首页 > 编程语言> > javascript-为什么某些使用typescript / webpack的项目也使用babel完成编译

javascript-为什么某些使用typescript / webpack的项目也使用babel完成编译

作者:互联网

我注意到一些使用Typescript和webpack的Web项目也使用babel完成编译.例如,他们使用ts编译到ES2015,然后使用babel编译到es5.为什么不直接使用ts直接编译为es5?

如果项目中也有需要编译的js,以便他们只使用babel进行所有操作,是否是这种情况?还是我想念什么?

谢谢.

解决方法:

有一些可能的原因.

>他们使用Babel自动进行polyfill-TypeScript仅执行语法转换,使用户可以确定他们需要使用哪些运行时库(例如Promise,Symbol等).这使您可以决定这些polyfill的哪种实现最适合您,但这可能会很麻烦. Babel减轻了您的负担.这是一个权衡.
>他们需要它来进行自定义转换-TypeScript具有转换管道,但是仅当您此时使用TypeScript API时才可以访问.如果您已经在使用Babel并想开始使用TypeScript,但是已经在使用转换,这是一个合理的折衷方案.
>它是在TypeScript不支持将生成器编译到ES5时创建的(甚至在TypeScript在ES5中不支持异步/等待时将其编译回来)-TypeScript自2.1开始在ES5中支持async / await,并且在downlevelIteration标志后面支持了生成器从2.3开始.在此之前,用户经常依靠Babel来弥补这一负担,但是这里不再需要Babel.
>它是在Webpack 2之前创建的,项目使用了一种特定的模块导入方式-TypeScript具有allowSyntheticDefaultImport选项,该选项告诉TypeScript默认导入可以用于导入某些模块. Babel支持此行为,但Webpack直到Webpack 2出现为止.对于较新版本的Webpack,这里不再需要Babel.

这可能不是全部原因,但是我想到的只是一些原因.

标签:webpack-2,typescript,webpack,javascript,babel
来源: https://codeday.me/bug/20191025/1931799.html