先别急着喷,你可能都没见过这些好玩的注释代码
今天的文肯定会很水,但应该也会很好玩。
一、最简单最低标准的注释
一般要求实现 类、方法、参数、类型、返回值等的 TSDoc
、JavaDoc
、JSDoc
等规范的最简注释:
示例代码
/**
* 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
显示了参考文档。
而且,如果调用了这类被弃用方法,调用的位置也会有相应的 删除线标记:
三、更美观的注释
众所周知??? Jetbrains
和 vscode
以及很多的IDE(或编辑器)的注释都是支持渲染部分 html
和 markdown
的。于是有了下面一些注释:
这里简单的通过标题字号来放大了需要调用方重点关注的事项,如方法名称、弃用的注释删除线、长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()
AirPower
的 AirI18n
类
六、MarkDown是吧?
都玩到这里了,要不加点料?
你干嘛~
The End ~
今天水完了,收工~
皮归皮,更多的注释可以参考我们的开源项目:
Github: github.com/HammCn/AirP…
Gitee: gitee.com/air-power/A…
当然,也欢迎你阅读我的专栏:“用TypeScript写前端”。
转载自:https://juejin.cn/post/7373937820177678374