VSCode本身不校验JSDoc标签,@param等是否生效取决于语言服务是否启用及注释格式是否规范:必须用/* /包裹、紧贴函数、开启checkJs,且类型拼写正确。

VSCode 本身不定义、不校验、也不强制任何注释标签规范——@param、@returns、@example 这些标签是否合法,完全取决于你用的插件或语言服务(如 TypeScript Server、Python Pylance、Java Extension Pack)是否识别它们。
为什么 @param 写了但没提示/没高亮?
这不是 VSCode 的问题,而是当前语言服务未启用或未正确解析注释结构:
- JavaScript/TypeScript 中,只有光标落在函数声明正上方且语言模式为
javascript或typescript时,@param才可能被智能感知(前提是开启了 JSDoc 支持) - Python 中,
python.docstringGenerator.style必须设为google、numpy或restructuredtext,否则"""回车后不会生成带@param的模板 - TypeScript 若用
Document This插件,它不支持解构参数(如({ id, name }) => {}),@param字段会直接丢失 - 如果文件是
Plain Text模式,哪怕写满一百个@param,也不会触发任何补全或悬停提示
如何让 @returns 在 hover 时显示?
关键不是“加标签”,而是“让语言服务能读到它”:
- 必须使用标准 JSDoc 块注释:以
/**开头、*/结尾,不能是//或/* */ - 函数必须有明确返回类型推导(显式类型标注或可被 TS 自动推断),否则
@returns只是文本,不参与类型检查 - 在 TypeScript 中,
@returns不替代: string类型注解;它只影响文档提示,不影响编译 - VSCode 默认不校验标签拼写,
@retuns(少个 r)也能保存,但 hover 时不会显示——这类错别字只能靠 ESLint +@typescript-eslint/require-jsdoc或jsdoc/valid-types插件捕获
团队统一 @param 格式,靠配置还是靠人?
纯靠人写不可控,但也不能全依赖自动补全——真实项目里最稳的组合是:
- 用
koroFileHeader统一生成函数头模板,固定包含@param占位,避免漏写 - 在
tsconfig.json或jsconfig.json中开启"checkJs": true+"jsdocParseMode": "strict"(TS 5.0+),让语言服务更严格地解析 JSDoc - 用 ESLint 规则强制字段顺序:
jsdoc/require-param-type、jsdoc/require-returns-description,报错而非静默忽略 - 禁用
Document This类插件在箭头函数或解构场景下的自动注入——它们生成的@param常与实际签名不一致,反而引入误导
真正难的不是写对标签,而是在重构函数签名后同步更新所有 @param 和 @returns。VSCode 不会自动同步,也没插件能 100% 可靠做这件事——这一步至今仍需人工核对。











