前端开发小技巧 - 【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;
  }
}
相关推荐
毕设源码-朱学姐6 小时前
【开题答辩全过程】以 工厂能耗分析平台的设计与实现为例,包含答辩的问题和答案
java·vue.js
老前端的功夫7 小时前
Vue 3 性能深度解析:从架构革新到运行时的全面优化
javascript·vue.js·架构
天天扭码7 小时前
如何实现流式输出?一篇文章手把手教你!
前端·aigc·ai编程
前端 贾公子8 小时前
vue移动端适配方案 === postcss-px-to-viewport
前端·javascript·html
GISer_Jing9 小时前
AI营销增长:4大核心能力+前端落地指南
前端·javascript·人工智能
明远湖之鱼9 小时前
一种基于 Service Worker 的渐进式渲染方案的基本原理
前端
前端小端长10 小时前
Vue 中 keep-alive 组件的原理与实践详解
前端·vue.js·spring
FeelTouch Labs10 小时前
Nginx核心架构设计
运维·前端·nginx
雪球工程师团队10 小时前
别再“苦力”写后台,Spec Coding “跑” 起来
前端·ai编程