Vue与TypeScript国际化:消除VSCode中$i18n、$t全局变量报错
解决Vue.js + TypeScript中$i18n/$t全局变量报错问题
- 扩展Vue全局属性类型
在项目根目录的src文件夹下,创建或修改shims-vue.d.ts文件(Vue3项目也可放在src/types目录下),添加以下类型声明代码:
import { ComponentCustomProperties } from 'vue' import { I18n } from 'vue-i18n' declare module '@vue/runtime-core' { interface ComponentCustomProperties { $t: I18n['t'] $i18n: I18n } }
这段代码会告诉TypeScript,Vue组件的全局属性中包含$t和$i18n,并对应vue-i18n的官方类型定义。
- 验证TypeScript配置
打开项目根目录的tsconfig.json,确保include字段包含了你的类型声明文件,示例配置如下:
{ "include": [ "src/**/*.d.ts", "src/**/*.ts", "src/**/*.vue" ] }
- 重启TypeScript服务
修改类型声明后,VSCode可能不会立刻生效,按下Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac),输入TypeScript: Restart TS Server并执行,刷新类型检测服务。
内容的提问来源于stack exchange,提问作者user66554
相关产品推荐
相关产品推荐

