vue3+typescript实战记录一

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue3+typescript实战记录一相关的知识,希望对你有一定的参考价值。

参考技术A 本文记录一些vue3+ts+less开发过程中的一些小问题。
不断开发、不断更新...

新建 Hello.vue 文件, App.vue 文件引入 Hello.vue ,报错如下:
没有发现模块 components/Hello 或者它对应的类型申明

参考链接: https://stackoverflow.com/questions/64213461/vuejs-typescript-cannot-find-module-components-navigation-or-its-correspon

要让 TypeScript 正确推断 Vue 组件选项中的类型,需要使用 defineComponent 全局方法定义组件。
参考文档

引用第三方库时,如果第三方类库并没有 ts 的 .d.ts 类型的声明文件,则无法在项目中正常使用。如果要顺利使用这些库, 就需要我们添加声明文件。

通过此 地址 可以查找当前安装的库有没有 .d.ts 的声明文件。

项目中引入 echarts

在 ts 声明查找地址发现 echarts 已经包含 .d.ts 类型的声明文件,则不需要我们手动去声明 echarts 模块

看了基础类型模块,想当然以为定义对象类型为下面示例:

报错如下:
提示不能使用 object 作为类型。推荐考虑使用Record<string, unknown>代替。

参考文档

参考文档

通过 as htmlElement 进行类型转换

在 setup 中定义的变量和方法,都必须通过return 暴露出去,外界才能使用,ref函数仅能监听基本类型的变化,不能监听复杂类型的变化(比如对象、数组)
在 setup 里获取 ref 绑定的 dom ,需要在 setup 的 return 有 ref(null) 的属性,模板上 ref 用对应属性名

通过 this.$refs 去获取

缺点:在 any 类型的变量上,访问任何属性都是允许的。它极有可能掩盖了真正的类型错误,所以如果不是非常确定,就不要使用 as any。

在 src 根目录 *.d.ts 文件中进行类型申明

以上是关于vue3+typescript实战记录一的主要内容,如果未能解决你的问题,请参考以下文章

Vue3.x 从零开始—— Router + Vuex + TypeScript 实战演练(上)

三个小时vue3.x从零到实战(typescript的搭建使用及资料)

关于 Vue 3 + TypeScript 和 Augmenting-Types-for-Use-with-Plugins 的问题

如何在 Vue3 中启用仅使用 TypeScript 的道具键入

vite + vue3 添加 typescript

推荐一个 Vue3 全家桶 + TS+ Vite2 + element-plus 的网站实战项目