TypeScript环境下挂载Vue全局变量触发类型报错导致构建失败如何解决
这个报错是TypeScript静态类型检查触发的,你仅在运行时完成了Vue原型的变量挂载,没有给TypeScript补充对应的自定义属性类型声明,因此TS无法识别这个挂载在实例上的属性。
解决方案
- 在项目
src目录下新建类型声明文件,命名为vue.d.ts,写入以下内容:
import Vue from 'vue' // 替换为你项目中SomeClass的实际定义路径 import type { SomeClass } from './你的SomeClass定义文件路径' declare module 'vue/types/vue' { interface Vue { $someVariable: Array<SomeClass> } }
- 检查项目根目录的
tsconfig.json,确保include配置项包含了你新增的声明文件,示例配置参考:
{ "compilerOptions": { // 你的原有配置保持不变 }, "include": [ "src/**/*.ts", "src/**/*.d.ts", "src/**/*.vue" ] }
配置完成后重启IDE的TypeScript语言服务即可生效,VSCode可按快捷键Ctrl+Shift+P,选择TypeScript: Restart TS Server完成重启。
内容的提问来源于stack exchange,提问作者naspinski
相关产品推荐
相关产品推荐

