UPDATE_LOG.md 4.65 KB

🎉 详细 JSDoc 注释功能 - 更新说明

✨ 新功能

🎯 详细 JSDoc 注释生成

现在生成的 API 文件包含完整的 JSDoc 注释,包括:

1. 参数注释(@param)

  • ✅ 提取参数类型
  • ✅ 提取参数描述
  • ✅ 标记必填/可选状态

示例

/**
 * @param {Object} params 请求参数
 * @param {integer} params.page (可选) 页码
 * @param {integer} params.pageSize (可选) 每页数量
 */

2. 返回值注释(@returns)

  • ✅ 完整的类型定义
  • ✅ 嵌套对象结构
  • ✅ 每个字段的描述
  • ✅ 数组类型支持(Array<>)

示例

/**
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: {
 *     user: {
 *       id: integer; // 用户ID
 *       name: string; // 姓名
 *     };
 *     list: Array<{
 *       id: integer; // ID
 *       title: string; // 标题
 *     }>;
 *   };
 * }>}
 */

🔄 改动内容

核心脚本更新

文件: scripts/generateApiFromOpenAPI.js

新增功能:

  1. parseProperties() - 递归解析对象属性
  2. generateParamJSDoc() - 生成参数注释
  3. generateReturnJSDoc() - 生成返回值注释
  4. ✅ 增强的 parseOpenAPIDocument() - 提取完整数据结构

新增文档

更新文档

  • 📝 OPENAPI_TO_API_GUIDE.md - 更新格式示例和字段说明
  • 📝 README_API_GENERATOR.md - 添加新特性说明

📋 生成效果对比

更新前

/**
 * @description: 查询我的信息
 * @param {Object} params 请求参数
 * @returns {Promise<{code:number,data:any,msg:string}>} 标准返回
 */
export const getUserInfoAPI = (params) => fn(fetch.get(Api.GetUserInfo, params));

更新后

/**
 * @description: 查询我的信息
 * @param {Object} params 请求参数
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: {
 *     user: {
 *       id: integer; // 用户ID
 *       name: string; // 姓名
 *       mobile: string; // 手机号
 *     };
 *     checkin: {
 *       total_days: integer; // 累计打卡天数
 *       consecutive_days: integer; // 连续打卡天数
 *     };
 *     unread_msg_count: integer; // 未读的消息数量
 *     is_teacher: boolean; // 是不是老师
 *   };
 * }>}
 */
export const getUserInfoAPI = (params) => fn(fetch.get(Api.GetUserInfo, params));

🎯 使用建议

1. 完善 OpenAPI 文档

确保在 OpenAPI 文档中填写完整的字段信息:

parameters:
  - name: page
    description: 页码          # ✅ 添加描述
    required: false            # ✅ 标记是否必填
    schema:
      type: integer            # ✅ 明确类型

responses:
  '200':
    content:
      application/json:
        schema:
          properties:
            data:
              properties:
                id:
                  type: integer
                  description: 用户ID  # ✅ 添加字段描述

2. 享受 IDE 智能提示

现在你可以在 IDE 中看到:

  • 🔍 完整的参数类型提示
  • 🔍 返回值结构提示
  • 🔍 字段描述说明
  • 🔍 自动补全支持

3. 提高代码质量

  • ✅ 类型安全
  • ✅ 减少错误
  • ✅ 提高可维护性
  • ✅ 改善开发体验

🚀 立即体验

# 1. 重新生成 API 文件(应用新的注释规则)
pnpm api:generate

# 2. 查看生成的详细注释
cat src/api/user.js

# 3. 在 IDE 中享受智能提示
# 打开 src/api/user.js 查看效果

📚 相关文档

💡 常见问题

Q: 如何让生成的注释更详细?

A: 在 OpenAPI 文档中为每个字段添加 descriptiontype

Q: 参数注释不显示?

A: 检查参数是否被过滤(af 参数不会显示在 @param 中)

Q: 返回值显示为 any

A: 确保 responses['200'].schema.properties.data 结构完整

Q: 如何更新已生成的文件?

A: 直接运行 pnpm api:generate,会覆盖已生成的文件

🎉 总结

这次更新让生成的 API 文件更加专业和易用:

  • 📝 完整注释 - 不再是简单的 any 类型
  • 🎯 类型明确 - 每个字段都有明确的类型
  • 💡 描述清晰 - 每个字段都有说明
  • 🔧 易于维护 - IDE 智能提示支持

现在你可以在编写代码时享受完整的类型提示和智能补全!🚀