脚本宝典收集整理的这篇文章主要介绍了Vue 2.5中将迎来有关TypeScript的改进!,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
自Vue2.0发布以来,我们一直在收到更好集成TyPEScript的请求。从那时起,我们已经为大多数核心库(vue
,vue-router
,vuex
)加入了官方的TypeScript类型声明。然而,当使用开箱即用的Vue API时,目前的集成还是有所欠缺。例如:TypeScript不能轻易的推断出Vue使用的基于对象的默认API中的this
类型。想要使我们的Vue代码与TypeScript更好的运作,我们需要使用vue-class-component装饰器,它允许我们使用基于类的语法来写Vue组件。
对于喜欢基于类的API的用户,这可能就够好了,但是有点糟的是,只是为了类型判断,用户就不得不使用不同的API。这也使得将现有的Vue代码库向TypeScript迁移更具挑战。
今年的早些时候,TypeScript引入了一些新特性,能使TypeScript更好的理解基于对象字面量的API,这也使得改进Vue的类型声明更具可能。来自TypeScript团队的Daniel Rosenwasser发起了一个雄心勃勃的PR(现在由核心团队成员HerringtonDarkholme持有),一旦通过合并,将会提供:
this
的正确的类型推断。这也能在单文件组件中很好的运行!PRops
配置的this
的props
的类型推断。运行中的 VSCode + Vetur + 新类型声明
感兴趣的话,就克隆这个体验项目(确保是new-types
分支)并使用VSCode + Vetur打开它来尝试一下吧。
类型改进将在vue 2.5中实装,目前计划在十月初前后发布。我们正在发布一个小版本,因为JavaScript公共API还没有取得突破性改变,但是,升级可能需要现有的Vue+TypeScript用户进行一些操作。这也是我们现在公布改动的原因,便于你有足够的时间来规划升级。
tsconfig.json
中配置"allowSyntheticDefaultImports": true
来使用ES风格的导入语法(import Vue From 'vue'
)。新的类型将正式转换至ES风格的导入/导出语法,这样上述配置就不需要了,而且用户在所有情况下都要使用ES风格的导入。vuex
, vue-router
, vuex-router-sync
, vue-class-component
。interface VueConstructor
来代替namespace Vue
(差异对比)as ComponentOptions<something>
来注释你的组件配置,像computed
, watch
, render
和生命周期钩子这种类型的需要手动进行类型注释。我们尽力去减小升级成本,并使这些类型改进与vue-class-component
中使用的基于类的API兼容。对于绝大多数用户,只需要升级依赖关系,并切换至ES风格的导入就好。同时我们建议你在准备好升级前,将你的Vue版本锁定在2.4.x
。
在2.5版本后,我们计划在下个vue-cli版本中去引入官方TypeScript支持,以便TS+Vue用户能轻松的启动新项目。敬请期待吧!
这些改动不会对非TypeScript用户产生负面影响;就公共JavaScript API而言,2.5会完全向下兼容,TypeScript CLI集成也可以完全的选择性加入。但是正如刚才所提到的,如果你使用vue-language-server编辑器扩展,你会收到更好的自动补全提示。
—
感谢 Daniel Rosenwasser, HerringtonDarkholme, Katashin 与 Pine Wu 对这些特性做出的工作和对这篇文章的审核。
以上是脚本宝典为你收集整理的Vue 2.5中将迎来有关TypeScript的改进!全部内容,希望文章能够帮你解决Vue 2.5中将迎来有关TypeScript的改进!所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。