tsc和babel都可以将ts编译成js。
tsc编译优缺点:
优点:ts自带的编译器,更好的编译所有的ts代码,比如type、enum、namespace等都可以识别,并声成.d.ts声明文件。
缺点:不支持js的一些新的语法,比如还在提案阶段的语法就无法解析。另外,es6一些单独实现的功能比如Promise也无法解析,需要单独添加polyfill(在入口引入import "core-js";),全量引入,体积很大。
babel编译优缺点:
优点:可以识别js所有的新语法和Promise等es6新特性(通过babel插件)。
缺点:
1.与ts合作推出的typescript插件,不能识别一些ts特有的语法,比如enum、namespace等(因为babel编译ts的原理就是去掉类型声明,只保留js原有功能)
2.无法进行类型检查
用babel还是tsc??
参考官方文档,给出以下建议:
1.当需要输出文件和输入文件一一对应的时候,建议使用tsc
2.当需要跟现有的打包软件一起使用的时候,建议使用babel
参考文章: