VSCode Problems面板中问题归类靠来源、级别、描述三要素:Source字段标识ts(类型错误)、eslint(风格问题)等;同一行多波浪线因来源不同而分列;缺失提示常因扩展未启用、tsconfig未加载或语言模式错误。

VSCode底部“问题”面板(Problems)里一堆红黄条目,不是靠猜,而是靠看来源、级别、描述三要素快速归类——它本身不分类,但每条记录自带明确元数据,关键是你得会读。
怎么看错误来源是 TypeScript 还是 ESLint?
每条问题右侧的 Source 字段就是分类依据:显示 ts(如 ts(2307))是 TypeScript 语言服务报的类型/模块错误;显示 eslint 是 ESLint 插件检查出的风格或逻辑问题;python、golint、stylelint 同理。如果点开一条报错却看不到 Source,说明该问题来自终端任务(比如 tsc 或 g++ 输出),此时要查 tasks.json 里的 problemMatcher 是否匹配成功。
为什么同一行出现两个红波浪线,但 Problems 面板只列一个?
VSCode 默认只聚合同位置、同来源的重复诊断,不同来源(比如 ts 和 eslint)即使在同一行也会分开列出。但如果你发现面板里缺失某类提示,常见原因包括:
- ESLint 扩展没启用:
eslint.enable设置为false - TypeScript 项目未加载
tsconfig.json:只打开单个.ts文件,而非整个文件夹工作区 - Python 文件被识别为
plaintext:右下角语言模式错,导致Pylance完全不启动 -
files.associations配置把.config.js映射成jsonc,结果 ESLint 不处理它
筛选时输错关键词就找不到问题?
顶部搜索框是**全文模糊匹配**,但只搜“问题描述”和“文件路径”,不搜行号或错误码。例如搜 console 能命中 Cannot find name 'console',但搜 2304 就无效——错误码得靠 Source 列识别。更实用的做法是:
- 先点漏斗图标,只勾选
Error,排除干扰 - 在搜索框输文件名片段,如
api或util,快速收窄范围 - 点击
代码列标题,让相同错误码(如no-unused-vars)挤在一起,批量处理
真正容易被忽略的是:Problems 面板不会告诉你某条警告是否已被 // eslint-disable-next-line 屏蔽——它只显示最终生效的诊断结果。所以看到某处没报错,别急着认为“没问题”,得确认是不是规则被静默禁用了。


















