当前位置: 首页 > news >正文

import(‘../views/Login.vue‘), 提示找不到模块或其相应的类型声明;

技术栈:ts+vue3+vite

创建一个 vite-env.d.ts文件

/// <reference types="vite/client" />

declare module '*.vue' {

import type { DefineComponent } from 'vue'

const component: DefineComponent<{}, {}, any>

export default component

}

上面代码用于在 TypeScript 项目中为 .vue 文件提供类型支持

在 TypeScript 中,三斜线指令是一种特殊的注释,用于告诉编译器在编译时包含额外的类型定义文件。

/// <reference types="vite/client" /> 表明当前项目依赖于 vite/client 这个类型定义包。

这是一个 TypeScript 三斜线指令(triple-slash directive)

它告诉 TypeScript 编译器引入 Vite 客户端的类型声明

这样就能获得 Vite 提供的内置类型支持,如导入静态资源(图片、CSS 等)时的类型提示

vite/client 是 Vite 框架提供的类型定义文件,它包含了 Vite 客户端相关的类型信息,比如环境变量类型、导入模块的类型等。通过引入这个类型定义,TypeScript 编译器就能正确识别和处理与 Vite 客户端相关的代码。

declare module 是在 TypeScript 中声明一个模块的语法

declare module '*.vue'

这是 TypeScript 的模块声明语法,用于为没有类型定义的模块提供类型声明

具体来说,它为所有 .vue 文件扩展名的模块声明了类型

在 TypeScript 中,默认不认识 .vue 文件,所以需要这个声明

从 Vue 中导入 DefineComponent 类型

import type { DefineComponent } from 'vue'

从 Vue 中导入 DefineComponent 类型

使用 import type 表示只导入类型,不会在运行时引入实际代码

声明一个名为 component 的常量,类型为 DefineComponent

const component: DefineComponent<{}, {}, any>

声明一个名为 component 的常量,类型为 DefineComponent

DefineComponent 是 Vue 组件的类型,有三个泛型参数:

-- 第一个 {} 表示组件的 props 类型为空对象

-- 第二个 {} 表示组件的 emits 类型为空对象

-- 第三个 any 表示组件的插槽内容类型为 any(任意类型)

将 component 作为默认导出

export default component

将 component 作为默认导出

这样在导入 .vue 文件时,TypeScript 就知道默认导出的是一个 Vue 组件

这段代码的主要作用是让 TypeScript 能够正确识别和处理 .vue 文件的导入,为 Vue 单文件组件提供类型支持。当你在代码中使用 import xxx from './xxx.vue' 时,TypeScript 编译器就会根据这个声明文件知道导入的是一个 Vue 组件,并提供相应的类型检查

分类: vue, ts

http://www.cnnetsun.cn/news/175276.html

相关文章:

  • K3s + Sysbox:让容器拥有“虚拟机的灵魂”
  • 8 个降AI率工具推荐,继续教育学生必备
  • 从开发一个AI美女聊天群组开始
  • 12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换
  • Java毕设项目:基于springboot的养宠物指南服务平台系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 10 个降AI率工具,继续教育学生高效避坑指南
  • Java毕设项目推荐-基于SpringBoot的演唱会门票在线预定系统的设计与实现基于springboot的演唱会购票系统的设计与实现【附源码+文档,调试定制服务】
  • 升压芯片很简单(一),快速选择升压芯片+利用升压芯片设计LED电源
  • 基于web的人才招聘网站设计 nodejs vue
  • 测试20个降AI率工具后,我找到了2个去ai痕迹效果好的网站,还有免费降AI额度。
  • Thinkphp和Laravel在线点餐系统的设计与实现vue
  • 现代cpp在传统内存分配上的改进
  • Java毕设项目:基于springboot的物业报修系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 【计算机毕业设计案例】基于springboot的物业报修系统的设计与实现线上化的报修管理平台(程序+文档+讲解+定制)
  • Java毕设选题推荐:基于springboot的社区团购系统的设计与实现、拼团下单、配送调度、资金结算【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Java计算机毕设之基于springboot的幼儿园管理系统的设计与实现为幼儿园(含普惠园、民办园、连锁园)设计的 “家园共育 + 日常运营 + 安全监管(完整前后端代码+说明文档+LW,调试定制等)
  • I/O多路复用
  • 视频播放器PotPlayer下载安装教程:超详细图文步骤(PC+安卓)
  • Semantic Kernel 实战系列(六) - Memory与向量存储
  • 一个基于 .NET MAUI 的开箱即用的 UI 组件库,可快速搭建面向业务的应用程序界面!
  • Semantic Kernel 实战系列(七) - 高级主题 - Agents 与多代理系统
  • LeetCode每日一题——K个一组翻转链表
  • 大模型后训练:中美路径与商业闭环|附56页PDF文件下载
  • 震惊!选对云服务器代理商,这5个关键指标必须知道!
  • 2025年度复盘与总结
  • ESA正式授予Sivers波束成形技术开发合同
  • 基于UKF-IMM无迹卡尔曼滤波与交互式多模型的轨迹跟踪算法matlab仿真,对比EKF-IMM和UKF
  • Java毕设项目:基于springboot的高校校园一卡通管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 2025年最实用的3个免费降ai率工具和免费ai查重工具,不用焦虑ai率过高!
  • 计算机Java毕设实战-基于springboot村委办公管理系统 基于SpringBoot的乡村事务综合服务平台的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】