markdown

jsdoc

@file

对文件的描述,用于文件的头部

@author <name> [<emailAddress>]

代码的作者
在姓名后面用尖括号加上邮箱会被自动转成 mailto: 的链接

@copyright <some copyright text>

与@file结合使用,说明版权相关的信息

@license <identifier>

说明许可证相关的信息

@type {typeName}

'*'表示任何类型

'?'表示可以为null

'!'表示不能为null

数组用'[]'表示

类型有多种情况需用'|'进行分隔,并加上'()'

可以使用 @callback 或 @typedef 定义的类型

@property [<type>] [<name>] [some description]

描述对象的属性

@func [<FunctionName>]

标识一个函数

@param {<type>} name - some description

非必传参数需给参数名加上'[]'

参数如有默认值需用'='表示

如果参数是object,可继续用 @param 对其属性进行详细说明

若干个参数用'...'表示

@returns {<type>} some description

描述一个函数的返回值

@namespace [{<type>}] <SomeName>]

标识一个命名空间

@desc <some description>

对某个部分的详细描述和说明

@summary <some description>

对某个部分的简短描述和说明

@constant [<type> <name>]

标识常量

@readonly

仅仅是注释,JSDoc不会去检查究竟是不是readonly

@default [<some value>]

变量的初始值

@enum [<type>]

相同类型的集合

注:
默认集合中的所有项都是相同类型,可以用@type指明某一项为其他类型

@example

使用示例

示例代码在文档中会被高亮显示

@throws [{<type>} free-form description]

表明这部分代码会抛出某个异常

@todo text describing thing to do

后续需要做的事

@borrows <that namepath> as <this namepath>

可理解为复制注释

当有多个地方引用了同一个函数,只需在一处写好注释,然后用@borrows即可

@callback <namepath>

定义一个回调函数,和 @typedef 一样,是一种自定义类型

@typedef [<type>] <namepath>

定义一个自定义类型

定义后可以在 @type @param 等标签中使用

@this

说明此处 this 所指代的内容

@global

全局标识

@inner

内部属性或方法的标识,使用后可以通过 Parent~Child 的方式来引用

@ignore

告诉JSDoc忽略这部分代码

@version

版本号

@since

表明该内容出现在一个特定的版本之后

@class [<type> <name>]

标识一个函数为构造函数,可以用 new 的方式实例化

@classdesc <some description>

与 @class 结合使用

注:
与 @desc 不同,@classdesc 是对类的描述,而 @desc 是对类的构造函数的描述

@member [<type>] [<name>]

标识类的属性

@method [<FunctionName>]

标识类的方法

@public

标识类的属性或方法的访问范围是public

@private

标识类的属性或方法的访问范围是private

@protected

标识类的属性或方法的访问范围是protected

@instance

实例属性或方法的标识

@static

静态属性或方法的标识

@constructs <name>

当使用对象直接量去定义类时,可以通过 @constructs 标识某个函数为类的构造函数

注:
不要和 @class同时使用,否则会在文档中出现两个同名的类

@lends <namepath>

把对象直接量的属性和方法指定为某个类的属性和方法

@extends <namepath>

用来表明继承关系

@abstract

标识子类必须实现或重写父类的此方法

@override

表明此方法是重写了父类的同名方法

@interface [<name>]

定义接口

@implements {typeExpression}

实现了某个接口

@module [[{<type>}] <moduleName>]

定义一个模块

@exports <moduleName>

当不是用 exports 或者 module.exports 对外提供模块接口时,需要使用 @exports 而不是 @module

@requires <someModuleName>

需要某个模块

@alias <aliasNamepath>

告诉JSDoc在生成文档时用另一个namepath去处理当前的内容

注:

@alias 不同于 @name,@name会告诉JSDoc忽略这部分代码

@name <namepath>

使用 @name 时,需要提供很多其他的注释,如 @type 等,因为JSDoc会忽略这部分代码

适用于在运行时才生成的函数等

@inheritdoc

继承父类的注释

@mixin [<MixinName>]

表明当前对象的属性和方法可以被添加到另一个对象中

@mixes <OtherObjectPath>

将带有 @mixin 标签的对象的属性和方法添加进来

@see <namepath>

页面里超链接的作用

or url
可以理解为注释中内联的 @see