前端开发小技巧 - 【TS + Vue3】- 给组件添加类型

前言

  • 添加组件类型的方式有两种:
    • 局部组件;
    • 全局组件、自动注册组件:

一、局部组件

  • 显性 的 导入组件 ,会 自动推导 出 组件类型;
  • 就是使用 import xxx from 'xxx'; 这种方式导入组件,就会有类型提示;
  • 但是如果我们使用组件的 自动注册插件 的话,是 没有类型提示 的;

二、全局组件、自动注册组件

  • 没有显性导入组件,需要 添加全局组件类型;

2.1 声明 类型声明文件

  • 文件位置 :
    • src/types/components.d.ts;

2.2 固定语法

ts 复制代码
// 1.导入组件
import xxx from 'xxx';

// 2.固定写法
// 用来扩展Vue模块下的类型
declare module 'vue' {
  // 如果想扩展一个全局组件类型的话,就必须在 GlobalComponents 下面扩展(固定写法);
  interface GlobalComponents {
    // 添加组件类型
    // 导入的组件是个对象,可以使用 typeof 操作符得到组件具体的类型,再将类型给 组件 去使用
    // typeof 在 TypeScript 中用于获取 变量 活 对象 的类型,因此操作符后面跟的始终是一个变量
    组件名称: typeof 组件名称;
  }
}

2.3 示例展示

ts 复制代码
import CpNavBar form '@/component/CpNavBar/index.vue';

declare module 'vue' {
  interface GlobalComponents {
    CpNavBar: typeof CpNavBar;
  }
}
相关推荐
鬼手点金3 小时前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
蛋蛋的就会顺顺的4 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
程序员Sunday4 小时前
TypeScript 的 any、unknown、never 有什么区别?
前端·面试·typescript
朱涛的自习室4 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
码艺-Alimjan5 小时前
Tauri 源码备份 · 打包 & 解压 总结,源码收集之路
前端·javascript·vue.js
小马不起床5 小时前
零基础玩转 FastAPI_11:前端后台管理页面
前端·状态模式·fastapi
子非鱼a6 小时前
【文件上传】一个普普通通的edu16
前端
美狐美颜SDK开放平台6 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
pride.li7 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
屏什么录7 小时前
电脑如何录屏幕视频和声音?从工具到代码,7 种方案帮你彻底搞定
前端·音视频开发