| name | code-query |
| description | 使用 ts-morph 静态分析工具查询代码结构(类层次、方法签名、引用、依赖等),替代手动读源码。使用场景:需要了解类的方法/属性、继承链、符号引用、文件结构、依赖关系时。 |
代码结构查询(优先于 Read/Grep)
项目提供基于 ts-morph 的静态分析工具,能精确查询 TypeScript 代码结构。当需要了解代码结构(类层次、方法签名、引用关系、依赖)时,优先考虑此工具。 但如果只是读短文件、看具体实现、或搜索非符号内容(字符串字面量、注释等),Read/Grep 仍然更直接。
运行方式:npx tsx scripts/code-query.ts <command> [args]
优先使用场景(替代 Read/Grep/SemanticSearch)
| 你想知道什么 | 用这个命令 | 不要这样做 |
|---|
| 一个类有哪些方法/属性 | methods <ClassName> | Read 整个 500 行文件 |
| 类的继承链和子类 | hierarchy <ClassName> | Grep "extends" 关键字 |
| 改动某个符号会影响哪些文件 | refs <Symbol> --files-only | Grep 符号名(漏别名、漏 re-export) |
| 一个文件的整体结构 | outline <file> | Read 文件后自己总结 |
| 文件依赖了哪些模块 | deps <file> | Read 文件头部 import |
| 某个接口/类型的字段定义 | interfaces <Name> | 在 shared/types/ 里 Grep |
| 文件导出了什么 | exports <file> | Read 文件找 export |
命令速查
hierarchy <ClassName> # 类继承链(向上祖先 + 向下子类)
methods <ClassName> # 类的方法签名和属性(按 public/protected/private 分组)
outline <file> # 文件结构概览(类、接口、函数、导出变量)
deps <file> # import 依赖(区分内部/外部)
refs <Symbol> [--files-only] # 符号引用(精确到行号,或仅列文件)
exports <file> # 文件所有导出(含 re-export 来源)
interfaces <file|Name> # 接口/类型定义(按名称全局搜索或按文件列出)
典型工作流
- 改动前评估:先
refs <要改的类/函数> --files-only 看影响范围,再决定方案
- 理解陌生服务:
outline 看结构 → methods 看 API → deps 看依赖
- 查类型定义:
interfaces <TypeName> 一步到位,不用翻文件