如何防止 Vetur 和 TypeScript 在 VSCode 中同时显示打字稿警告?

Posted

技术标签:

【中文标题】如何防止 Vetur 和 TypeScript 在 VSCode 中同时显示打字稿警告?【英文标题】:How do I prevent Vetur and TypeScript from both showing typescript warnings in VSCode? 【发布时间】:2021-12-25 16:09:56 【问题描述】:

我正在开发一个使用 TypeScript 的 Vue2 项目。我正在使用安装了 Vetur 和 TypeScript 扩展的 VSCode。

每当出现 TypeScript 警告时,VSCode 叠加层都会显示 TypeScript 和 Vetur 报告的相同警告。

此外,任何智能感知菜单都会显示选项两次。

我想同时安装这两个扩展。我怎样才能让他们彼此相处融洽并且只显示一次警告?

【问题讨论】:

这只是一个猜测,但可能是因为两个扩展都使用了不同版本的 TS。 Vetur 有一个 setting 来使用 TS 的工作区版本(仅来自 node_modules],我敢打赌 VS 的 TS 扩展也会有类似的东西。另请注意,Vetur 不再是官方推荐的与 Vue+TS 一起使用的工具,而是 @ 987654324@ - 从我个人的经验来看,确实更好 @MichalLevý 我也为我的 Vue 3 项目安装了 Volar,但我的旧 Vue 2 项目需要 Vetur。 @MichalLevý 我启用了use workspace dependencies 并重新启动了 Vetur vue 语言服务 (VLS),但遗憾的是,它仍然加倍突出显示。 @MichalLevý 一时兴起,我禁用了 Vuter,而 Volar 似乎已经弥补了我的 Vue 2 项目的不足。如果你想写一个正式的答案,我很乐意给你赏金。 【参考方案1】:

这可能是因为两个扩展使用不同版本的 TS。 Vetur 有一个 setting 来使用 TS 的工作区版本(仅来自 node_modules),我敢打赌 VS 的 TS 扩展也会有类似的东西。

另外请注意,Vetur 不再是官方推荐与 Vue+TS 一起使用的工具,但 Volar 是 - 从我个人的经验来看,它确实更好,更积极地开发(甚至支持 script setup 没有完美但Options API/Composition API 和 script setup 之间相当不错的自动转换)

虽然 Volar 说它是为 Vue 3 设计的,但它仍然适用于 Vue 2 和组合 API。因此,如果您启用了 Volar,则在 VSCode 中禁用 Vetur 应该是安全的。

【讨论】:

以上是关于如何防止 Vetur 和 TypeScript 在 VSCode 中同时显示打字稿警告?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Apollo 在 TypeScript 中填充常量时,对象的类型为“未知”.Vetur(2571)

带有 Vetur 的 VSCode 中带有 Typescript 的 NativeScript-Vue:在类型“void”上不存在属性“then”的警报

如何使用jsdom和typescript防止“属性'...'在'Global'类型上不存在”?

Vetur 说,在模板上使用道具时,“从不”类型中不存在道具

Vetur 在模板中无法正常工作(不检查数据、方法...)

如何在 VS Code 中为模板中的 vue 道具启用 Typescript 打字和智能感知?