vue3中对'@vue/runtime-core'模块扩展属性, 为什么会影响vue文件导入?

开发环境

vscode+vertur或者volar都单独实验过, 都提示一样的错误.

env.d.ts

/// <reference types="vite/client" />
declare module '*.vue' {
  import { DefineComponent } from 'vue'
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
  const component: DefineComponent<{}, {}, any>
  export default component
}

// 🚀追加内容
import { AxiosInstance } from 'axios';
import { Store } from 'vuex'
import { State } from './store'
declare module '@vue/runtime-core' {
  export interface ComponentCustomProperties {
    // 为 `this.$http` 提供类型声明
    $http: AxiosInstance;
    // 为 `this.$store` 提供类型声明
    $store: Store<State>
  }
}

此时import { DefineComponent } from 'vue'这一行会报错, 导致declare module '*.vue'整体失效了, vue文件不能解析.

问题:

  1. 如果追加的内容放到新的文件, 比如global.d.ts就一切正常, 请问这是为什么?
  2. import { DefineComponent } from 'vue'这一行为什么是放在"declare module"内部, 放外部就不能识别vue文件了,这是为什么呢?
    image.png
阅读 10.6k
2 个回答
新手上路,请多包涵

到 main.ts 中就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏