You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现JavaScript包导出类在鼠标悬停时显示注释?

实现JavaScript类悬停显示注释的方法

嘿,这个需求其实超容易搞定!咱们只需要用JSDoc注释规范来编写类的说明就好——现在主流的代码编辑器(比如VS Code、WebStorm)都原生支持JSDoc的悬停提示功能,只要你按照规范写注释,用户把鼠标放到类的声明处时,就能自动看到你编写的所有说明啦。

基础实现步骤

直接给你的类、构造函数和方法加上/** ... */格式的注释,里面可以写类的功能描述、参数说明、返回值类型甚至示例代码,编辑器会自动解析这些内容并展示。

举个完整的例子:

/**
 * 这是一个专门处理数据格式化的工具类
 * 支持JSON格式化、数据验证等常用功能
 */
export class DataFormatter {
  /**
   * 创建DataFormatter实例
   * @param {Object} config - 初始化配置
   * @param {number} config.indent - JSON格式化的缩进空格数(默认2)
   * @param {boolean} config.validate - 是否开启数据验证(默认true)
   */
  constructor(config = {}) {
    this.indent = config.indent ?? 2;
    this.validate = config.validate ?? true;
  }

  /**
   * 将任意数据格式化为美观的JSON字符串
   * @param {any} rawData - 需要格式化的原始数据
   * @returns {string} 格式化后的JSON字符串
   * @example
   * const formatter = new DataFormatter({ indent: 4 });
   * const result = formatter.formatToJson({ name: "张三", age: 25 });
   * // 输出带4空格缩进的JSON字符串
   */
  formatToJson(rawData) {
    if (this.validate && typeof rawData !== "object") {
      throw new Error("只能格式化对象类型数据");
    }
    return JSON.stringify(rawData, null, this.indent);
  }
}

进阶技巧:自定义类型定义

如果你的类用到了复杂的配置对象,可以用@typedef标签先定义类型,这样用户悬停时能看到更清晰的结构说明:

/**
 * @typedef {Object} FormatterConfig
 * @property {number} [indent=2] - JSON格式化的缩进空格数
 * @property {boolean} [validate=true] - 是否开启数据验证
 */

/**
 * 这是一个专门处理数据格式化的工具类
 * 支持JSON格式化、数据验证等常用功能
 */
export class DataFormatter {
  /**
   * 创建DataFormatter实例
   * @param {FormatterConfig} config - 初始化配置
   */
  constructor(config = {}) {
    this.indent = config.indent ?? 2;
    this.validate = config.validate ?? true;
  }
}

注意事项

  • 确保用户使用的是支持JSDoc的编辑器:VS Code、WebStorm、Sublime Text(需装插件)等主流工具都没问题,几乎不需要额外配置。
  • 注释尽量简洁清晰:不用写冗余内容,重点说明类的作用、参数含义、使用场景和注意事项,这样用户悬停时能快速获取关键信息。

内容的提问来源于stack exchange,提问作者asaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:35:31