前端开发小技巧 - 【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;
  }
}
相关推荐
粥里有勺糖9 小时前
视野修炼-技术周刊第126期 | TypeScript #1
前端·node.js·github
冰暮流星9 小时前
css3新增过渡
前端·css·css3
天黑请闭眼9 小时前
视频文件上传至服务器后浏览器无法在线播放
前端
一位搞嵌入式的 genius9 小时前
前端实战开发(四):从迭代器到异步编程:ES6 Generator 全面解析 + 实战问题排查
开发语言·前端·es6·前端实战
拉不动的猪10 小时前
# 关于初学者对于JS异步编程十大误区
前端·javascript·面试
玖釉-10 小时前
解决PowerShell执行策略导致的npm脚本无法运行问题
前端·npm·node.js
Larcher10 小时前
新手也能学会,100行代码玩AI LOGO
前端·llm·html
徐子颐10 小时前
从 Vibe Coding 到 Agent Coding:Cursor 2.0 开启下一代 AI 开发范式
前端
小月鸭11 小时前
如何理解HTML语义化
前端·html
jump68011 小时前
url输入到网页展示会发生什么?
前端