14 | TypeScript:Vue 3中如何使用TypeScript?
该思维导图由 AI 生成,仅供参考
什么是 TypeScript
- 深入了解
- 翻译
- 解释
- 总结
Vue 3中如何使用TypeScript TypeScript在Vue 3中的应用是前端开发的重要利器。它为JavaScript赋予了强类型的语言环境,通过类型系统提供更健壮的前端应用开发支持。Vue 3本身TS的覆盖率超过了95%,并且在Vue 3源码中也使用了TypeScript,使得代码阅读和调试更加顺畅。TypeScript还支持泛型和递归类型等高级用法,可以根据输入类型动态设置函数返回值类型,实现更复杂的类型组合。在Vue 3中,使用TypeScript可以提高代码质量和开发效率。在\<script setup>环境下,Vue已经把对TypeScript的支持封装得很好了,这样ref和reactive可以很好地实现类型推导,我们只需要定义好项目中使用变量的格式即可。同时,vue-router和Vuex也提供了自己的TypeScript类型系统,比如我们可以引入vue-router的RouterViewRecord类型去限制我们书写路由的格式。总的来说,TypeScript的应用使得在Vue 3中的开发更加高效和可维护。 TypeScript和JavaScript的平衡 TypeScript引入的强类型系统带来了可维护性较好、调试较为方便的好处。但是,TypeScript和JavaScript并不是完全对立的关系,学习TypeScript和JavaScript不是二选一的关系。TypeScript最终还是要编译成为JavaScript,并在浏览器里执行。所以我们的核心还是要掌握JavaScript,在这个基础之上,无论是框架,还是TypeScript类型系统,我们都将其作为额外的工具使用,才是我们最佳的选择。 思考题 了解了TypeScript的使用后,可以回想一下Vue 2里有哪些写法是对TypeScript不友好的,以及我们应该怎么在Vue 3优化。欢迎你在评论区留言分享,也欢迎你把这一讲的内容分享给你的同事和朋友。
《玩转 Vue 3 全家桶》,新⼈⾸单¥68
全部留言(45)
- 最新
- 精选
- ll几节课学下来,发现工程就是“灵活与稳定”之间的平衡。 上节是 template 与 JSX 各自的优缺点,实际上也能看出各自设计对“灵活”与“稳定”的取舍。我非专业转行,对于类型系统有点学习体会: 1. 动态 vs 静态语言 从运行过程上说,动态比较简单,你写代码,然后丢给解释器运行,如果出错,就会报运行时错误 (runtime error);静态语言比动态语言多个“门卫”,编译器,代码在运行前,它帮你检查一边,出问 题报错,报的是编译错误(compile error)。编译出错的代码根本不会走到运行时阶段。 2. 怎么实现的 静态语言怎么检查代码,通过“规则”,这个规则就是所谓的"强类型系统"。 简单的说就是"先定规则,再执行”,“先得有类型,才能执行”。这也是为什么它在“灵活性”上不如动 态语言。 3. 超集 刚开始看这个定义的时候也没搞太明白,后来就清楚了;各个厂家的浏览器中“实现”JavaScript 是根 据 ECMAScript 标准。而浏览器只能看的懂 JavaScript。 所以 TypeScript 最终都会“编译”成 JavaScript 跑在宿主环境里。哪些在 ts 中看到的 “超级” 语法,关 键词 最终都会变成 js。 4. 也挑个小错 let todos:Ref(Todo[]) = ref([{title: "学习Vue", done: false}]) 中,应该是 Ref<Todo[]> 吧
作者回复: 很棒的总结 代码更新啦
2021-11-1726 - 费城的二鹏了解了 TypeScript 的使用后,你可以回想一下 Vue 2 里有哪些写法是对 TypeScript 不友好的,以及我们应该怎么在 Vue 3 优化呢? 在公司项目使用 ts 开发 vue2,感觉这个写法掩盖了很多 vue2 本身的概念。比如说 data 方法没了,watch 方法没了,都变成了注解,不太容易理解到 vue 本身的设计思路。
作者回复: 因为vue2中的this只能在ts中标记any,其实丧失了ts的意义,所以vue2中使用ts使用的事封装好的class语法,这个语法其实已经在vue3被废弃了,可以考虑使用composition来适配vue2
2021-11-173 - 费城的二鹏const emit = defineEmits<{ 代码片段貌似不完整
作者回复: 更新啦
2021-11-171 - Geek_0c8afftypescript加餐++++++
作者回复: 已加餐
2021-11-30 - 以梦为马TS 加个餐吧,如何系统得在 Vue3 项目实战 TS,感觉现在 TS 都快成标准了,都在用
作者回复: ts加餐在写了
2021-11-22 - Geek_073752大圣老师,有计划TypeScript加餐吗?
作者回复: 大家需要的还挺多,肯定会有的
2021-11-18 - Geek_a84b8d希望大圣老师有TS的加餐2021-11-17163
- 关关君加餐 想看 TypeScript 和 Vue3 的 项目最佳实践2021-11-1910
- 东东老师,后面的项目可以用TS写不?2021-11-1710
- 哎哟迪奥typescript yyds,大圣大佬yyds,加餐yyds。2021-11-175