VSCode不生成文档,仅支持JSDoc注释编写;jsdoc/typedoc工具导出HTML/Markdown。/**回车只生成空框架,因原生功能仅做基础补全,参数填充依赖语言服务对函数签名的静态解析。

VSCode 本身不生成文档,只负责写对 JSDoc 注释;真正能导出 HTML 或 Markdown 的是 jsdoc 或 typedoc 命令行工具。所谓“自动生成注释”,其实是语法结构填充,不是理解业务逻辑——函数改了但注释没同步,工具就完全失效。
为什么 /** 回车只生成空框架?
VSCode 原生的 /** + 回车只做最基础的块注释补全,参数和返回值填充依赖语言服务能否静态解析函数签名。常见失败原因:
- 右下角语言模式不是
JavaScript或TypeScript(比如显示Plain Text) - 函数用了箭头函数赋值式:
const fn = ({id}) => {}→ 解构参数无法识别 - 项目根目录缺少
jsconfig.json,或里面没开"checkJs": true - 函数体为空、只有
return、或定义后隔了空行,语言服务直接跳过
Document This 插件触发失败的典型场景
它不靠 /** 输入触发,而是依赖光标位置和 AST 结构,以下情况必然静默失败:
- 光标停在
class X { m = () => {} }的箭头函数内部 → 不识别为可注释函数 - Vue
<script setup></script>中光标在defineProps或useXXX行 → 没有标准函数声明节点 - 函数名前有
export、async、function*等修饰符,且光标没落在function关键字或函数名上 - 快捷键被系统输入法占用(如 macOS 的 Ctrl+Alt+D),需进
Keyboard Shortcuts重映射
真正可控的三步工作流
放弃全自动幻想,用内置命令打底 + 手动校验 + CLI 验证:
- 写完函数后,光标停在函数名上,按
Ctrl+Shift+P→ 输入Insert JSDoc comment(VS Code 内置,无需插件)→ 得到干净骨架 - 手动补全:
@param {string} [email](注意可选参数加方括号)、@returns {Promise(泛型写全)、解构字段拆成独立} @param - 运行
jsdoc -r ./src -d ./docs --verbose→ 控制台会明确告诉你哪些函数因缺@returns或格式错误被跳过
JSDoc 注释必须紧贴函数声明上方,中间不能有空行
这是最常被忽略的硬性规则。哪怕只多一个换行,VSCode 悬停提示、Document This 参数提取、jsdoc CLI 文档导出,全部失效。错误示例:
/**
* @param {string} name
*/
<p>function greet(name) { }</p>
正确写法是:
/**
* @param {string} name
*/
function greet(name) { }
类型拼写也一样:写成 {numberr} 或 {Stirng},悬停提示就断了;写成 {*},连基础补全都变弱。











