1. ts 提示.vue
文件类型相应的类型申明
使用 Vite 初始化项目后,在vscode中打开 main.ts
文件,会出现:
找不到模块“./App.vue”或其相应的类型声明。ts(2307)
网上找了一下,大致解决方案都是感觉都是针对 Vue2 场景的:
declare module '*.vue' {
import Vue from 'vue'; // vue3 默认不导出 Vue 这个实例了
export default Vue;
}
参照这个思路,找不到.vue
文件的类型申明,可以在随意一个 d.ts 文件中定义一个.vue
的文件类型申明就行,主要问题是需要导出什么类型?
简单的思路是:看.vue文件在什么地方用的。
在main.ts
中导入的 App 是用于 createApp
函数,从 App.vue 导入的是createApp
函数的第一个参数,故其App的类型就应该是createApp
函数的第一个参数的类型:
通过 vscode 可以很容易的定位(command + 点击createApp 进入其类型申明文件)到其
createApp
函数第一个参数类型是 Component
,所以随便找一个地方,正好项目有个 vue-app-env.d.ts
类型申明文件,故里面添加以下代码:
declare module '*.vue' {
import { Component } from 'vue'
const mod: Component
export default mod
}
这样就解决了Vue文件类型文件找不到的问题。