修复使用unplugin-auto-import和unplugin-vue-components后tsc-vue报错的问题

embedded/2025/2/6 6:28:57/

在使用NaiveUI的过程中,引入了unplugin-auto-import和unplugin-vue-components。
这两个组件能自动引入vue方法和vue组件,提升了开发者体验。

但是在vscode中,源码里未手动引用而直接用的方法和组件还是被标红,提示找不到,
在build的时候,tsc-vue报错,

error TS2304: Cannot find name 'NButton'.
error TS2304: Cannot find name 'ref'.

解决方法

在tsconfig.json的include属性里加上 auto-imports.d.ts ,就可以解决不能识别vue方法的问题

javascript">{"include": ["env.d.ts", "src/**/*", "src/**/*.vue", "auto-imports.d.ts"],
}

但是vue组件不识别的问题,解决起来就没这么直接了
截止2023-09-14,unplugin-vue-components对在vue sfc中使用tsx的支持还是有问题
具体讨论可以看下这个合并请求:

fix: tsx component type declaration #673

通过参考上面这个合并请求里的讨论,我想如果手工创建一个 components-tsx.d.ts 文件,在里面加上全局引用,
并把这个文件配置到 tsconfig.json 的include中,是不就能解决报错问题

试了一下,果然可以。之所以不在原来的 components.d.ts 中加,是因为那个文件在使用的组件变化时会自动重新生成,
手动加入的内容会被覆盖掉。

components.d.ts 文件内容

javascript">export {}declare global {const NButton: typeof import('naive-ui')['NButton']
}

最终的 tsconfig.json

javascript">{"include": ["env.d.ts", "src/**/*", "src/**/*.vue", "auto-imports.d.ts", "components-tsx.d.ts"],
}

http://www.ppmy.cn/embedded/159951.html

相关文章

【llm对话系统】大模型 Llama 如何进行量化和推理

1. 写在前面 Llama 是 Meta AI 开源的一系列大型语言模型 (LLM),在各种 NLP 任务上表现出色。然而,这些模型通常具有庞大的参数量,需要大量的计算资源和内存才能进行推理。为了降低 Llama 模型的部署成本,并提高其推理速度,我们可以采用模型量化 (Quantization) 技术。 …

Mac M1 ComfyUI 中 AnyText插件安装问题汇总?

Q1:NameError: name ‘PreTrainedTokenizer’ is not defined ? 该项目最近更新日期为2024年12月,该时间段的transformers 版本由PyPI 上的 transformers 页面 可知为4.47.1. A1: transformers 版本不满足要求,必须降级transformors &#…

Linux系统 环境变量

环境变量 写在前面概念查看环境变量main函数的参数argc & argvenv bash环境变量 写在前面 对于环境变量,本篇主要介绍基本概念及三四个环境变量 —— PATH、HOME、PWD。其中 PATH 作为 “ 敲门砖 ”,我们会更详细讲解;理解环境变量的全局…

【PyQt】lambda函数,实现动态传递参数

为什么需要 lambda? 在 PyQt5 中,clicked 信号默认会传递一个布尔值(表示按钮是否被选中)。如果我们希望将按钮的文本内容传递给槽函数,需要通过 lambda 函数显式传递参数。 这样可以实现将按钮内容传递给槽函数&…

Python调用C++程序实现

基本环境说明 由于C的执行速度快、控制粒度细,Python上层开发方便、迭代速度快,故经常可以遇到C写好接口供Python调用的情况,但是其中bug还不少(尤其是动态链接库一个链接另一个,就会产生比较复杂的关系) …

MySQL 插入数据

MySQL 插入数据 引言 在数据库管理系统中,MySQL 是一款广泛使用的开源关系型数据库管理系统。数据插入是数据库操作的基础之一,它涉及将数据添加到数据库的表中。本文将详细介绍 MySQL 中插入数据的方法,包括基本的插入语法、多行插入、以及…

大语言模型极速部署:Ollama 与 One-API 完美搭建教程

大语言模型极速部署:Ollama 与 One-API 完美搭建教程 本文将介绍如何通过命令行工具部署 Ollama 和 One-API,帮助你快速搭建私有化大模型。 一、安装 Ollama Ollama 是一个容器化的应用,方便部署和管理 AI 模型。以下是安装 Ollama 的步骤。…

Sqli-labs靶场实录(一):Basic Challenges

sqli-labs靶场实录:Basic Challenges sql手注基本流程Less-11.1探测注入点1.2判断字段数1.3判断回显位1.4提取数据库基本信息1.5拖取敏感数据 Less-2Less-3Less-4Less5爆表爆列名 Less6爆库爆表爆列名 Less7猜解数据库长度逐字符爆破数据库名 Less8爆库 Less9爆库 Less10Less11…