You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3+Vite+TS项目TSX全局组件vue-tsc编译失败求助

解决Vue3+Vite+TS项目全局注册TSX组件后vue-tsc报错TS2304的问题

这个报错的核心原因是:你全局注册的TSX组件没有在TypeScript的类型系统中声明,导致vue-tsc做静态类型检查时无法识别该组件。页面能正常渲染是因为Vue运行时能识别全局注册的组件,但TypeScript编译阶段没有对应的类型支撑。

下面是具体的修复步骤:

  • 创建组件类型声明文件
    在项目src目录下新建components.d.ts文件,填入以下代码(注意替换组件的实际路径):
import type { DefineComponent } from 'vue'
import MyComponent from './components/MyComponent.tsx' // 请替换为你的组件真实路径

declare module '@vue/runtime-core' {
  export interface GlobalComponents {
    MyComponent: DefineComponent<typeof MyComponent>
  }
}

export {}

export {}是必须的,它能让这个文件被当作TypeScript模块处理,确保类型能正确合并到Vue的全局组件接口中。

  • 配置TypeScript识别声明文件
    打开tsconfig.json,检查include字段,确保包含了刚才创建的.d.ts文件,示例配置如下:
{
  "compilerOptions": {
    // 其他配置...
  },
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}

如果你的声明文件在项目根目录,需要把"*.d.ts"也加入include数组。

  • 验证修复效果
    重新执行vue-tsc --build,此时TS2304的找不到组件错误应该会消失。

内容的提问来源于stack exchange,提问作者lril ho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 09:07:03