JetBrains系列IDE TypeScript插件查找属性用法返回无关结果如何解决?
问题:WebStorm查找TypeScript属性引用时返回大量无关结果如何过滤
给出如下示例文件:
main.ts
export const something = { myValue: 2, } function actualUsage() { return something.myValue } function unrelatedUsageCreate() { return { myValue: 2 } } function unrelatedUsageUse() { console.log(unrelatedUsageCreate().myValue) } function unrelatedUsageMapAny() { ;([] as Array<any>).map((v) => v.myValue) } function unrelatedUsageMapOtherType() { ;([] as Array<{ myValue: number }>).map((v) => v.myValue) }
other.ts
type Unrelated = { myValue: boolean } function unrelatedUsage(): Unrelated { return { myValue: false } }
当查找something的myValue属性的引用时,WebStorm返回了4条结果:
main.ts中的actualUsageother.ts中的unrelatedUsagemain.ts中的unrelatedUsageCreatemain.ts中的unrelatedUsageMapAny
而TypeScript原生仅能找到actualUsage函数中的引用,期望WebStorm的表现和TypeScript原生、VSCode一致,但现有过滤选项仅支持按get/set、文件位置过滤,不符合需求。已提交对应JetBrains工单WEB-53352,请问该如何设置才能过滤这些无关的引用结果?
解决方案
方法一:启用TypeScript原生语言服务(永久对齐VSCode行为)
WebStorm默认使用自研的静态分析引擎做引用查找,会误匹配所有同名字段,你可以切换为TS官方的语言服务实现:
- 打开IDE设置:Windows/Linux 路径为
File > Settings,macOS 路径为WebStorm > Preferences - 依次进入
Languages & Frameworks > TypeScript设置页 - 勾选
使用TypeScript语言服务选项,保存设置后重启IDE - 重新查找属性引用,结果就会和TypeScript原生、VSCode完全一致,仅返回
actualUsage中的有效引用
方法二:临时过滤结果(不修改全局配置)
如果仅需要本次过滤无关结果,可以直接在查找结果窗口操作:
点击查找结果窗口右上角的筛选图标,选择自定义过滤,输入匹配规则仅保留包含something.myValue的条目即可快速排除无关结果。
补充说明
你提交的WEB-53352工单已经被JetBrains官方标记为待修复问题,后续版本会优化自研引擎的属性引用匹配逻辑,修复后无需额外配置即可得到正确的查找结果。
内容的提问来源于stack exchange,提问作者andras
相关产品推荐
相关产品推荐

