likes
comments
collection
share

先别急着喷,你可能都没见过这些好玩的注释代码

作者站长头像
站长
· 阅读数 19

先别急着喷,你可能都没见过这些好玩的注释代码

今天的文肯定会很水,但应该也会很好玩。

一、最简单最低标准的注释

一般要求实现 类、方法、参数、类型、返回值等的 TSDocJavaDocJSDoc 等规范的最简注释:

示例代码

/**
 * Http服务
 * @author Hamm.cn
 */
class Http {
  /**
   * 请求的URL
   */
  private url!: string

  /**
   * 创建Http实例
   * @param url URL
   * @returns Http实例
   */
  static init(url: string): Http{
    const http = new Http()
    http.url = url
    return http;
  }
}

实现效果

先别急着喷,你可能都没见过这些好玩的注释代码

二、更规范的注释

接下来我们引入一些标准的注解来丰富一下注释,如弃用、重定向、链接等:

示例代码

/**
 * Http服务
 * @author Hamm.cn
 */
class Http {
  /**
   * 请求的URL
   */
  private url!: string

  /**
   * 初始化Http实例
   * @param url 请求的URL
   * @returns Http实例
   * @throws Error 格式错误的URL
   * @link https://developer.mozilla.org/zh-CN/docs/Web_mechanics/What_is_a_URL
   */
  static create(url: string): Http {
    // 返回一个Http实例
    const u = new URL(url)
    const http = new Http()
    http.url = u.href
    return http;
  }

  /**
   * 创建Http实例
   * @param url URL
   * @returns Http实例
   * @deprecated 此方法没有校验URL合法性,可能导致后续发送请求出现异常
   * @see create()
   * @link https://developer.mozilla.org/zh-CN/docs/Web_mechanics/What_is_a_URL
   */
  static init(url: string): Http{
    const http = new Http()
    http.url = url
    return http;
  }
}

实现效果

下图因为被标记了 @deprecated 而显示 init 方法被弃用,并显示了弃用的原因,以及通过 @see 推荐使用的新方法 create,通过 @link 显示了参考文档。

而且,如果调用了这类被弃用方法,调用的位置也会有相应的 删除线标记

先别急着喷,你可能都没见过这些好玩的注释代码

三、更美观的注释

众所周知??? Jetbrainsvscode 以及很多的IDE(或编辑器)的注释都是支持渲染部分 htmlmarkdown 的。于是有了下面一些注释:

这里简单的通过标题字号来放大了需要调用方重点关注的事项,如方法名称、弃用的注释删除线、长URL渲染到超链接标签等:

示例代码

/**
 * Http服务
 * @author Hamm.cn
 */
class Http {
  /**
   * # 请求的URL
   */
  private url!: string

  /**
   * # 初始化Http实例
   * @param url 请求的URL
   * @returns Http实例
   * @throws Error 格式错误的URL
   * @link [MDN参考文档](https://developer.mozilla.org/zh-CN/docs/Web_mechanics/What_is_a_URL)
   */
  static create(url: string): Http {
    // 返回一个Http实例
    const u = new URL(url)
    const http = new Http()
    http.url = u.href
    return http;
  }

  /**
   * # ~~创建Http实例~~
   * @param url URL
   * @returns Http实例
   * @deprecated 此方法没有校验URL合法性,可能导致后续发送请求出现异常
   * @see create()
   * @link [MDN参考文档](https://developer.mozilla.org/zh-CN/docs/Web_mechanics/What_is_a_URL)
   */
  static init(url: string): Http{
    const http = new Http()
    http.url = url
    return http;
  }
}

实现效果

先别急着喷,你可能都没见过这些好玩的注释代码

四、逐渐离谱的注释

通过 MarkDown 写一些调用的 demo 代码,像写文章一样把注释丰富一下,调用方不会再说不知道怎么调用了吧?

示例代码

/**
 * # Http服务
 * @author Hamm.cn
 */
class Http {
  /**
   * # 请求的URL
   */
  private url!: string

  /**
   * # 初始化Http实例
   * @param url 请求的URL
   * @returns Http实例
   * @throws Error 格式错误的URL
   * @link [MDN参考文档](https://developer.mozilla.org/zh-CN/docs/Web_mechanics/What_is_a_URL)
   * @example
   * - 初始化一个Http实例
   * - 设置请求数据类型
   * - 设置身份等Header头
   * - `get`/`post`/`put`/`delete`请求
   * 
   * ```typescript
   * const result = Http.create("https://hamm.cn")
   *                    .setContentType(ContentType.JSON)
   *                    .setHeader("Authorzation", "Bearer 123456")
   *                    .post(data)
   * ```
   */
  static create(url: string): Http {
    // 返回一个Http实例
    const u = new URL(url)
    const http = new Http()
    http.url = u.href
    return http;
  }
}

实现效果

先别急着喷,你可能都没见过这些好玩的注释代码

五、更加离谱的注释

既然能用 Markdown,再加点 Emoji, 嘿嘿嘿嘿嘿~

Emoji 的皮注释

先别急着喷,你可能都没见过这些好玩的注释代码

AirPower 提供的 AirDateTime.sleep()

先别急着喷,你可能都没见过这些好玩的注释代码

AirPowerAirI18n

先别急着喷,你可能都没见过这些好玩的注释代码

六、MarkDown是吧?

都玩到这里了,要不加点料?

你干嘛~

先别急着喷,你可能都没见过这些好玩的注释代码

The End ~

今天水完了,收工~

皮归皮,更多的注释可以参考我们的开源项目:

Github: github.com/HammCn/AirP…

Gitee: gitee.com/air-power/A…

当然,也欢迎你阅读我的专栏:“用TypeScript写前端”。

转载自:https://juejin.cn/post/7373937820177678374
评论
请登录