最直接方式是光标停在对象后按“.”触发智能提示;其次可用ctrl+shift+o(支持@method过滤)或outline视图,二者均基于ast、不依赖语言服务器就绪。

光标停在对象后按 . 触发智能提示
这是最直接、最常用的方式,不需要额外快捷键或视图。只要语言服务已就绪(比如 TypeScript 有 tsconfig.json,Java 装了 Java Extension Pack),输入 . 后几毫秒内就会弹出属性与方法列表。
常见问题:
- 没反应?先确认右下角语言模式是否正确(如显示为
Plain Text而非TypeScript或Java) - 只显示基础
toString()、valueOf()?说明类型推导失败——可能是缺少 JSDoc 注释、未导入类型定义(如@types/node),或对象是any类型 - 提示太慢?关掉不必要的扩展,或检查
settings.json中是否禁用了"editor.quickSuggestions": {"other": true, "comments": false, "strings": false}
Ctrl + Shift + O 查当前文件所有符号(含类内方法)
这个快捷键不依赖语言服务是否完全启动,只靠 AST 解析,稳定性高。适用于想快速扫一遍自己写了哪些方法,而不是查某个具体对象有哪些成员。
实用技巧:
- 输
@method过滤出全部方法(排除字段、变量) - 再按一次
Ctrl + Shift + O,会按类别分组显示(Class/Method/Field) - 驼峰匹配有效:输
getU能命中getUser、getUserName - Python 需装 Pylance;TS 若无有效
tsconfig.json,可能漏掉 interface 方法签名
右侧 Outline 视图看结构,不卡顿、不依赖 LSP
Outline 是纯语法驱动的,比语言服务器更轻量。打开方式:点击右侧面板的「大纲」图标,或用命令面板运行 Outline: Focus on Outline View。
它列出的是当前文件的完整结构树,包括:
- 类名(含
static标识) - 方法名(带参数提示,如
getName(): string) - 字段(
private name: string这类声明也会显示)
注意:如果 Outline 为空,大概率是文件后缀没被识别(比如 .ts 被当成 plain text),点右下角语言模式手动选对即可。
为什么 Shift + F12 和 F12 不适合查对象方法列表
F12 是跳转到定义,Shift + F12 是查引用——两者都依赖语言服务器完成静态分析,且目标是“某一个符号”,不是“列出所有可用成员”。
容易混淆的点:
- 你在
person.getName()上按F12,会跳到getName的实现;但你想知道person还有哪些方法可调?这不是它该干的事 -
Shift + F12返回一堆调用位置,和“对象有什么方法”完全无关 - 语言服务启动慢或崩溃时,
F12/Shift + F12直接失效,而.提示、Ctrl + Shift + O、Outline 多数仍可用
真正卡住的时候,往往不是快捷键按错,而是语言服务没起来——先看右下角有没有「Starting Java Language Server…」这类提示,再决定要不要等或重启窗口。











