结论:靠插件“自动生成”专业注释不现实,真正提升专业性的关键是用对插件并严格遵守jsdoc位置与结构约束;document this等工具仅做语法提取、不分析语义,遇解构参数、箭头函数、泛型返回值易漏标或写成{any},且注释若与函数间存在空行(哪怕一行),tsc和jsdoc工具即跳过解析——此空行问题为70%文档生成失败主因。

直接说结论:靠插件“自动生成”专业注释不现实,真正提升专业性的关键,是用对插件 + 严格遵守 JSDoc 位置与结构约束。
为什么 Document This 生成的注释常被 TypeScript 忽略
它只做语法层面的参数提取,不分析语义。遇到解构参数、箭头函数表达式体、泛型返回值时,@param 和 @returns 标签会漏掉或写成 {any}。
- 例如
const fn = ({ id, name }) => {}→ Document This 不识别id和name字段,生成空@param -
async function fetchUser(): Promise<user></user>→ 它常输出@returns {any},TypeScript 就无法推导类型提示 - 注释若和函数之间隔了空行(哪怕只有一行),
tsc和jsdoc工具都会跳过该函数——这是 70% 的文档生成失败主因
koroFileHeader 适合什么场景
它不生成 JSDoc,而是管“谁写的、什么时候写的、改过几次”,适合需要强审计追踪的团队,比如金融或嵌入式项目。
- 按
Ctrl+Cmd+I(Mac)在文件顶部插入含作者、创建时间、最后修改人等字段的头部注释 - 按
Ctrl+Cmd+T在函数上方生成带@param的注释,但前提是函数必须是传统声明式写法(function xxx()或const xxx = function()) - 保存时自动更新“最后编辑时间”,但不会校验
@param类型是否匹配实际签名
Better Comments 不是文档工具,而是阅读加速器
它解决的是“扫一眼就知道这行注释想表达什么情绪或状态”,和 JSDoc 文档生成完全不重叠。
-
// !触发红色粗体,适合标记线上紧急回滚点:// ! FIXME: 这里会触发 Safari 15.6 内存泄漏 -
// ?是蓝色斜体,适合留待同步确认的问题:// ? 后端是否已支持 /v2/user/{id}/profile 接口? - 它默认不处理
/** */块注释,只作用于//行注释;如果误配"better-comments.highlightPlainText": true,Markdown 文件里的//也会被染色,干扰阅读
真正可控的半自动流程
放弃“一键生成就完事”的幻想,用 VS Code 内置能力打底,加轻量插件辅助校验:
- 写完函数后,光标停在函数名上,按
Ctrl+Shift+P→ 输入Insert JSDoc comment(VS Code 自带命令),它生成基础框架,不瞎猜类型 - 手动补全
@param和@returns,类型写具体(如{string[]}而非{Array}) - 运行
jsdoc -r ./src --verbose,看哪些函数因格式错误被跳过——--verbose会明确告诉你“missing @returns”或“no comment found” - 把
eslint-plugin-jsdoc加进.eslintrc,启用require-description和check-param-names,让 CI 拦住不合格注释
最易被忽略的不是插件选哪个,而是 JSDoc 注释必须紧贴函数声明正上方,中间不能有任何空行——这个空行,比插件配置重要十倍。











