Skip to content

Latest commit

 

History

History
40 lines (28 loc) · 2.26 KB

现在不适合在Vue中使用TypeScript(2019.04.23).md

File metadata and controls

40 lines (28 loc) · 2.26 KB

现在不适合在Vue中使用TypeScript,并不是说以后不适合,我有我的理由。

TypeScript的好处

为了表明我充分意识到了TS的好处,以及不枉费这两天学习TS的时间,我记录一下TS带来的好处。

优点

  1. 静态类型支持。
  2. 代码提示。
  3. 思维变化。Model & interface.
  4. 更好更快的使用lib,比如axios。减少查api doc.

缺点

  1. 非标准。与ES可能打架。但是Vue 3.x是用Typescript写的,所以从这点来说,TS的生命力是有保证的。
  2. 社区支持。不是每个npm包都有很好的类型声明。
  3. 快速发展和变化。2个月的发布周期。时不时有新东西要学或周边升级。
  4. 编辑器支持。由于变化快,编辑器的支持可能跟不上。
  5. Babel的支持。Babel 7。Babel和TS之间的配合未验证。
  6. ESLint的支持。TSLint并入ESLint了。目前还没合并完毕。
  7. Prettier。支持。但未验证效果。
  8. TS是JS的超集,背负了JS的历史包袱,所以做不到类型的soundness。
  9. sourcemap在chrome devtools的表现?未验证。

以上未验证的部分是因为我已经决定暂时不使用TS,所以没有继续验证。

现在不在Vue中使用TS的理由

  1. 官方没有提供有力支持。虽然vue cli 3和vue-class-component都支持TS,但都不是主流。
  2. Vuex的TS支持很繁琐,并且用到的decorator是stage 1的方案。Vuex没有官方的TS融合方案。
  3. 使用起来很繁琐是指为了支持类型,需要引入Vue和Vuex相关的很多类型,自己定义的type也需要在各个地方引用。总体来说,繁琐程度超过了收益。
  4. 由于使用的是非标准的特性,项目开始的时候是好的,可能项目维护和升级的时候就傻眼了。
  5. 由于Vue 3.x将使用TS开发(预计2019末发布),并承诺改善自身的类型系统,可见Vue 3.x会有一套新的TS融合方案。现在采用TS的项目很可能又马上面临重大技术依赖的过时。

结论

TS是很不错的,但是根据投资回报比,目前不适合在Vue中采用TS。等到Vue 3.x在2019年末或2020年初发布后,再考虑在新项目中使用TS。

尤雨溪关于在Vue中使用TS的回答