我知道名为typescript.preferences.autoImportFileExcludePatterns
(ref)的VS Code设置,我的本地VS Code使用的是支持该设置的最新TypeScript版本:
的数据
然而,在编写测试文件时,我无法阻止VS Code建议从node:test
模块导入成员。对于记录,我使用vitest
作为测试运行器,它的典型函数名与node:test
(describe
,beforeEach
,it
)冲突。
我尝试了以下设置,但没有成功:
"typescript.preferences.autoImportFileExcludePatterns": ["node:test"],
字符串
当然,node-test
不是npm包,所以使用"**/node_modules/...some package name..."
的经典示例在这里不适用。
已经有人参与进来了吗?
1条答案
按热度按时间x7yiwoj41#
VS Code添加了一个功能来记住建议选择(参见Remember suggestion selections #22839)。您可以看到完成问题的the related commit和this related file。也就是说,如果你将VS Code设置为
editor.suggestSelection
或者"recentlyUsed"
,我想你可以通过选择你想要的建议来得到一个很好的解决方案。要想做得更好(实际上从自动导入建议中排除特定的环境模块声明),我认为这不容易实现。
node:test
是node_modules/@types/node/index.d.ts
中的环境模块声明,在.node_modules/@types/node/index.d.ts
中由/// <reference path="test.d.ts" />
引用,并且由于在node模块的package.json中使用"types": "index.d.ts"
指定,该index.d.ts文件成为module resolution的一部分。我不知道有什么功能可以从自动导入中排除模块声明,而且您也不想增加模块--您想让它像不存在一样用于智能感知目的。您可以尝试创建自己的
@types/node
包的修改副本,在其中编辑index.d.ts文件以删除执行/// <reference path="test.d.ts" />
的行。有一个名为
typescript.preferences.includePackageJsonAutoImports
的“核”VS Code设置,我不认为这是你想要的-使用它来禁用node:test
导入建议也会禁用你想要导入的vitest模块的导入。