缺少UI库类型提示,你可能使用的是阉割版的Volar+Vue3

先说一下什么是类型提示,在Vue3+Volar中,UI组件会像一个typescript对象一样,告诉你它有哪些属性.

例如鼠标悬浮在el-button上,会显示它对应的一些属性.

在这里插入图片描述

你在组件上键入属性的时候也会给予你像typescript一样的编写建议.

在这里插入图片描述

如果你使用的是自己本地编写的组件,你将完美地享受到这一功能,但如果你使用的是像ant-design-vue或者element-plus一样的组件库,在未进行配置的情况下,你会遇到下面这种情况.

组件提示是any对象,volar无法为你的UI组件库提供任何提示.这相当于你在用残废版的volar+vue3.

在这里插入图片描述

不过,这并不是特别严重的残疾,解决方法如下:

1 直接引入这个组件
以 vue3 + element-plus 为例,如果需要添加类型提示, 你可以直接在vue文件中引入这个组件.

<template>
  <div>
    <el-button></el-button>
  </div>
</template>

<script lang="ts" setup>
import { ElButton } from "element-plus"
</script>
复制代码

这种方法将ElButton视同于你本地编写的组件,通过主动引入的方式获得了类型提示.

如果是少量引入的话,这种办法并无不妥.

2 通过 tsconfig.json 进行引入
打开 node_modules/element-plus/global.d.ts , 你会看到这么一个东西,

// GlobalComponents for Volar
declare module 'vue' {
  export interface GlobalComponents {
    // ...
  }
}
复制代码

注释上写着为 Volar 准备的全局组件.但从刚刚的实验来看,很明显我们的Volar没用上它.

实际上,我们需要用tsconfig.json帮助Volar用上这个ts声明文件.

修改根目录的tsconfig.json, 修改include,让ts主动接受这个声明文件.

{
  "compilerOptions": {
    "target": "esnext",
    "useDefineForClassFields": true,
    "module": "esnext",
    "moduleResolution": "node",
    "strict": true,
    "jsx": "preserve",
    "sourceMap": true,
    "resolveJsonModule": true,
    "esModuleInterop": true,
    "lib": ["esnext" "dom"],
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  }
  "include": [
    "src/**/*.ts",
    "src/**/*.d.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "node_modules/element-plus/global.d.ts"   // <<<<<<<<<<-------添加这一行
  ]
}
复制代码

结语
以小见大,如果以后遇到ts类型提示需要全局引入,而不是一个个import的话,就可以修改tsconfig.json.

最后
如果你觉得此文对你有一丁点帮助,点个赞。或者可以加入我的开发交流群:1025263163相互学习,我们会有专业的技术答疑解惑

如果你觉得这篇文章对你有点用的话,麻烦请给我们的开源项目点点star:https://gitee.com/ZhongBangKeJi/CRMEB不胜感激 !

PHP学习手册:https://doc.crmeb.com/
技术交流论坛:https://q.crmeb.com/

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vite是一个基于ESM原生模块化的构建工具,它在开发环境下具有非常快的冷启动速度。与传统的打包工具不同,它采用了基于浏览器原生模块系统的开发模式,可以实现按需编译,对于热更新的支持也更加高效。Vite的简洁和快速性质使得它成为了Vue.js项目开发的一种理想选择。 Vue 3是Vue.js框架的最新本,它延续了Vue 2的优势,并在性能、开发体验和可维护性方面进行了一系列改进。Vue 3采用了单文件组件的方式进行开发,使得代码在可读性和复用性方面得到提升。另外,Vue 3还引入了Composition API,使得在处理逻辑时变得更加灵活和高效。 Volar是一个为Vue.js开发者设计的一套工具集,它提供了一系列高效的代码编辑功能,可以大大提高开发效率。Volar具有智能的自动补全、类型推导、快速导航和代码重构等功能,使得开发者在编写Vue.js代码时可以更加轻松和高效。 TypeScript是一种JavaScript的超集,为开发者提供了静态类型检查等一系列强大的工具,可以帮助开发者在开发过程中提前发现问题并提高项目的可维护性。结合Vue.jsTypeScript可以获得更好的开发体验,TypeScript也被广泛应用于Vue.js的开发中。 Element Plus是一套基于Vue 3的桌面端组件,它提供了一系列高质量的UI组件和交互效果,可以快速构建出现代化的Web应用程序。Element Plus具有扩展性强、文档详细、易于使用等特点,同时还提供了主题定制和国际化等功能,可以满足不同项目的需求。 综上所述,结合Vite、Vue 3、VolarTypeScript和Element Plus可以实现高效、可维护和现代化的Vue.js项目开发。这些框架和工具的特点和功能相辅相成,可以大大提升开发效率并提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CRMEB定制开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值