对TypeScript的编译目前主要用三种方式:
- tsc : typescript compiler - typescript官方编译器
- webpack:通过webpack,配置本地ts编译环境和开启本地服务,可直接在浏览器上运行,可借助如下两种loader
- ts-loader
- babel-loader
- ts-node: 编写ts后,直接通过node命令来执行,通过ts-node库,为ts的运行听歌执行环境。
对于第一种,如果我们是单纯的编译某个文件可以,但是
对于复杂的工程就会显得捉襟见肘。
对于第二种,ts-loader是可以对类型进行类型校验的,如果校验失败,则会给出报错,但是
,ts-loader不会提供polyfill功能,这很蛋疼。
bable-loader可以提供polyfill功能,但是不会对类型错误进行检测,这也很蛋疼。
那么,在实际的工程项目中,我们该如何进行选择呢?目前网上争论不休!
事实上,TypeScript官方文档有对其编译进行说明
官方参考:https://www.typescriptlang.org/docs/handbook/babel-with-typescript.html
也就是说:
- 我们使用babel来完成代码的转换,使用tsc来进行类型的检查
- 那么,如何使用tsc来进行类型检查呢?
- 在scripts里添加两个脚本
"script": { "build": "webpack", "type-check": "tsc --noEmit", "type-check-watch": "npm run type-check -- --watch" }
以上。
对于第三种,在node环境运行,没啥好说的。