Vue项目中如何阻止VSCode为btoa方法添加删除线?
问题解答
1. 删除线的来源
这个删除线不是ESLint导致的,是VS Code内置的TypeScript语言服务造成的。你的项目大概率同时引入了Node.js和浏览器DOM的类型定义,而Node.js的类型把btoa标记为废弃,优先级覆盖了浏览器环境的正常定义,所以VS Code显示了删除线。
2. 取消标记的解决方案
不用写window.btoa,只要调整项目的类型配置,明确告诉TypeScript我们的代码运行在浏览器环境,具体步骤如下:
方法一:修改jsconfig.json(Vue3默认项目适用)
在项目根目录的jsconfig.json中,调整compilerOptions,指定只加载浏览器相关类型,移除Node.js类型:
{ "compilerOptions": { "target": "ESNext", "module": "ESNext", "lib": ["ESNext", "DOM"], // 明确引入浏览器DOM库 "types": ["vue"], // 仅保留Vue类型,移除node相关配置 "moduleResolution": "bundler" }, "include": ["src/**/*"], "exclude": ["node_modules"] }
方法二:卸载多余的@types/node依赖
如果你的项目完全不需要Node.js相关API,直接卸载@types/node:
npm uninstall @types/node --save-dev
方法三:VS Code临时全局调整(不推荐项目级使用)
打开VS Code设置(快捷键Ctrl+,),搜索typescript.validate.enable关闭TS类型检查,但这会关闭所有类型提示,不如前两种方法精准。
配置完成后,重启VS Code或重新加载窗口(快捷键Ctrl+Shift+P,选择"Reload Window"),btoa的删除线就会消失。
内容的提问来源于stack exchange,提问作者Eric G
相关产品推荐
相关产品推荐

