侧边栏壁纸
  • 累计撰写 218 篇文章
  • 累计创建 59 个标签
  • 累计收到 5 条评论

全局组件的类型声明

barwe
2023-05-11 / 0 评论 / 0 点赞 / 1,035 阅读 / 814 字
温馨提示:
本文最后更新于 2023-06-07,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

声明文件(Declaration File)是一种包含了 JavaScript 模块、类、函数等类型信息的特殊文件。声明文件通常以 .d.ts 作为扩展名,可以让 TypeScript 编译器正确的识别 JavaScript 代码中的类型信息,并提供相关的代码补全和类型检查。

所以,我们在代码编辑器中使用的所有类型信息和类型补全都是 TypeScript 编译器通过阅读声明文件实现的。

unplugin-vue-components 插件允许我们定义全局组件,例如 NaiveUI 库提供的所有组件,这样我们在使用这些组件的时候就不需要挨个导入了。在 VSCode 中,如果我们不显式导入这些被声明为全局组件的组件,我们仍然可以直接在 template 中使用这些组件,但是 VSCode 并不会给出任何与组件相关的类型提示,这是因为 TypeScript 编译器尚未阅读与这些全局组件相关的类型定义。换言之,如果我们显式导入这些组件,那么 TypeScript 编译器就会在我们导入组件的时候自动阅读组件的类型定义,此时就能在编辑器中直接查阅到这些组件的类型信息。

如果在没有手动导入全局组件的情况下使用组件的类型功能,需要借助于 @vue/runtime-core 这个包。

@vue/runtime-core 是 Vue 3 中的一个核心库,它包含了 Vue 3 运行时核心代码。就这里涉及到全局组件的类型注释功能而言,unplugin-vue-components 插件会 借助于@vue/runtime-core 动态生成全局组件的类型声明文件,然后传递给 TypeScript 编译器。

所以我们需要安装 @vue/runtime-core:

ni -D @vue/runtime-core

然后将其生成的声明文件传递给 TypeScript 编译器:

{
  "compilerOptions": {
    "types": [
      "@vue/runtime-core"
    ]
}
0

评论区