写点什么

vue2 升级 vue3: 全局变量挂载与类型声明

作者:zhoulujun
  • 2022 年 6 月 21 日
  • 本文字数:533 字

    阅读完需:约 2 分钟

全局变量挂载

vue2

Vue.prototype.$lm = {}
复制代码

vue3

const app = Vue.createApp({})app.config.globalProperties.$lm = {}
复制代码


声明类型

使用 ts 的情况下,挂载完全局变量后,在 vue 文件中,通过 this 对象 . 出来不来提示的。

什么是声明文件?

声明文件就是给 js 代码补充类型标注. 这样在 ts 编译环境下就不会提示 js 文件"缺少类型".

声明变量使用关键字 declare 来表示声明其后面的全局变量的类型, 比如:

// yourAppPackages/global.d.ts
declare var __DEV__: boolean
declare var __TEST__: boolean

看过 vue3 源码的同学一定知道这些是 vue 中的变量, 上面代码表示__DEV__等变量是全局, 并且标注了他们的类型. 这样无论在项目中的哪个 ts 文件中使用__DEV__, 变量 ts 编译器都会知道他是 boolean 类型.

声明文件的文件名是有规范要求的, 必须以.d.ts 结尾, 声明文件放在项目里的任意路径/文件名都可以被 ts 编译器识别, 但实际开发中发现, 为了规避一些奇怪的问题, 推荐放在根目录下.

一般比较大牌的第三方 js 插件在 npm 上都有对应的声明文件, 比如 jquery 的声明文件就可以在 npm 上下载,比如:@types/jquery

参考资料:为 Vue3

转载本站文章《vue2升级vue3: 全局变量挂载与类型声明》,请注明出处:https://www.zhoulujun.cn/html/webfront/ECMAScript/vue3/8836.html

用户头像

zhoulujun

关注

还未添加个人签名 2021.06.25 加入

还未添加个人简介

评论

发布
暂无评论
vue2升级vue3: 全局变量挂载与类型声明_zhoulujun_InfoQ写作社区