VUE3+TS,解决“*.vue”找不到模块问题!

1,415 阅读1分钟

起因: vscode中的ts不支持.vue文件;

- 办法一:自己声明vue的modle类

  • 那么就需要添加一下 .vue 类型文件的声明,步骤如下:
  1. 在根目录(也就是 tsconfig.json这一级)下新建名为 ”vue.d.ts“ 的文件。文件名中的 ”vue“ 也可以改为任一名称。

  2. 在 ”vue.d.ts“ 文件中写入以下声明:

    js
    复制代码
    // 以下两种方案二选一
    
    // 方案一
    declare module "*.vue" {
      import Vue from "vue";
      export default Vue;
    }
    
    // 方案二
    declare module '*.vue' {
      import { defineComponent } from 'vue'
      const Component: ReturnType<typeof defineComponent>
      export default Component
    }
    
  3. 在 ”tsconfig.json“ 中,将第二步中创建的文件 ”vue.d.ts“(或者你自己新建的其他名称的 .d.ts 文件)添加到 include 中:

    js
    复制代码
    "include": [
       "vue.d.ts"
    ],
    
  • 缺点:* 所有的vue模块指向都会指到 vue.d.ts 文件

方法二:volar接管模式

VSCode原生是不支持vue文件的,所以需要volar插件支持,而VSCode本身的Typescript与volar中有冲突,所以我们需要在工作区禁用VSCode默认的TS; vue官方参考: cn.vuejs.org/guide/types…