vscode原生/**回车常只生成空框架,因其仅对简单function声明做静态分析;解构参数、箭头函数、ts类型缺失或函数体换行均导致参数名和类型提取失败。

VSCode原生/**回车为什么经常只生成空框架?
因为VSCode默认只对简单函数声明(function add(a, b))做静态分析,一旦遇到解构参数、箭头函数、TS类型缺失或函数体换行,它就无法提取参数名和类型。常见表现是生成的@param后面只有{*}或空占位符,甚至漏掉整个字段。
必须满足三个前提才能触发有效填充:
- 右下角语言模式必须是
JavaScript或TypeScript(不是Plain Text) - 函数定义得“可静态分析”:优先用
function fn(a, b) {},避免const fn = ({id}) => {} - 项目根目录有
jsconfig.json且含"checkJs": true,否则语言服务退化
Document This插件怎么用才不生成错参数?
它不依赖输入/**,而是靠光标位置+快捷键触发,因此更鲁棒,但触发条件很具体:
- 光标必须放在函数名正上方的空行,或直接在
function isValid这一行任意位置(不能在export或async关键字上) - 默认快捷键:
Ctrl+Alt+D(Windows/Linux)或Cmd+Alt+D(macOS),部分系统被输入法占用需重映射 - 对箭头函数支持差,建议只用于
function声明或带明确返回类型的const fn = (a: string): number =>
关键配置项(在设置里搜document this):
-
documentthis.includeDescription:设为true才加@description -
documentthis.jsdocReturnType:设为true才尝试从return语句推断返回类型 -
documentthis.dateformat:填"YYYY-MM-DD"这类标准格式,填错会显示Invalid date
参数类型写错会导致悬停提示失效
VSCode不校验类型拼写,但会按你写的文本去匹配已知类型。写成numberr或Stirng,提示就断了;写成{*}或空,连基本补全都变弱。
推荐写法:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- 基础类型用小写:
{string}、{number}、{boolean} - 数组/对象写具体:
{Array<string>}</string>、{User[]}、{{ id: number; name: string }} - Promise写全:
{Promise<string>}</string>,否则.then()参数没提示 - 第三方库用
import()语法:{import('axios').AxiosInstance}
注释和函数之间有空行,VSCode就当它不存在
这是最常被忽略的硬性规则:JSDoc注释必须紧贴函数声明上方,中间不能有任何空行。哪怕只多一个换行,VSCode的悬停提示、Document This的参数识别、jsdoc CLI的文档导出,全部失效。
错误示例:
/**
* @param {string} name
*/
<p>function greet(name) { }</p>
正确写法:
/**
* @param {string} name
*/
function greet(name) { }
这个细节导致大量团队文档生成失败——不是工具不行,是注释位置错了。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










