注释说明
1、@class 类标识符。
@class 后面可以不跟类名,单独使用,但是如果使用@description标签,@class 后面如果跟类名的话必须和类名保持一致,负责无法识别类中的属性和方法。
![](https://img.haomeiwen.com/i12206610/490fca4efbe177e0.png)
![](https://img.haomeiwen.com/i12206610/37d0cd2c4e74c089.png)
2、@callback 回调函数标识符。
@callback用来声明一个回调函数类型以及参数等信息,可以当做函数的参数类型使用。
(1)声明一个回调函数(包括名称、参数类型、返回值等详细信息)、并且使用
![](https://img.haomeiwen.com/i12206610/50f1460330655703.png)
(2) 实现效果。参数类型中存在该函数类型,可以点击
![](https://img.haomeiwen.com/i12206610/2f3fe0115e9e9fe5.png)
点击函数类型后跳转到该回调函数的具体信息处。
![](https://img.haomeiwen.com/i12206610/f1f8cfb497ee3ee5.png)
(3)指定属于某一个类的回调函数。
语法:@callback namepath~name
比如我想定义一个专属于类AttOper的onOk回调函数。
![](https://img.haomeiwen.com/i12206610/ec2ec4b2b6644263.png)
![](https://img.haomeiwen.com/i12206610/c9ca482aee418631.png)
这里cx.AttOper是类AttOper的namepath,
(4)namepath获取方法如下:
1、存在@namespace标签的话就以@namespace标签里的内容为namepath(),如果标签里没有内容,则转到第三部的格式。
2、存在@memberof标签的话就以父元素namepath+类名为namepath。
3、如果既没有@namespace也没有@memberof的话,如果有@alias标签,则以@alias标签里的内容为namepath; 没有@alias标签,以@class标签内容为namepath; @class标签也没有内容的话,直接以类名为namepath。
(5)实现效果(点击可跳转,且该方法只属于类AttOper)。
![](https://img.haomeiwen.com/i12206610/49b43d46023fa78a.png)
![](https://img.haomeiwen.com/i12206610/b698300310f74fb4.png)
3、@method 方法标识符
(1)描述。
后面不跟内容时默认使用下面的方法名,跟内容时则使用其内容作为以下方法的方法名
![](https://img.haomeiwen.com/i12206610/f2bbe7b34c99ca84.png)
(2)实现效果
![](https://img.haomeiwen.com/i12206610/7b3eaf39deb1e29a.png)
4、@param 参数标识符。
(1)格式:@param {类型} 参数名 参数描述
Param里的参数类型支持任意类型,也可以吧自定义的函数作为一个类型
![](https://img.haomeiwen.com/i12206610/0b8578d745db8049.png)
(2)实现效果
![](https://img.haomeiwen.com/i12206610/ec8ce2e441cc4319.png)
5、@arguments 指明子类继承自哪个父类。
注意:后面必须跟父类名
![](https://img.haomeiwen.com/i12206610/f1b94d2a09b8ef68.png)
实现效果
![](https://img.haomeiwen.com/i12206610/d457f8d0b0f7b3db.png)
6、@alias 别名标识符
可以给类名或者方法名起一个别名,以实现在文档中展示此别名,但是不影响实际名称。
如:
![](https://img.haomeiwen.com/i12206610/5b3b0c9f70392f99.png)
实现效果
![](https://img.haomeiwen.com/i12206610/bae9f09228ff2892.png)
7、@alias 另外的用法。
如果想要实现一个类中嵌套多个子类,则可用@alias+@namespace实现。
(1)首先在主类中加入@namespace声明和@alias声明。
![](https://img.haomeiwen.com/i12206610/7af35a2597e9e776.png)
(2)然后在子类中添加@alias声明,注意内容格式为(主类@alias内容.子类名)如:
![](https://img.haomeiwen.com/i12206610/8938f0be3ff46a57.png)
(3)实现效果
![](https://img.haomeiwen.com/i12206610/7a9b486747b4cc7d.png)
(4)点击后跳转到子类对象信息页中。
![](https://img.haomeiwen.com/i12206610/da1ebee850ab92d6.png)
8、@global 记录一个全局对象
(1)使用@global标签来指定一个标识应记录为全局。
比如我想把这个addDeployment方法标识为全局的方法。(注意由于加了global标识后,API文档里会把这里的方法名变为class名+方法名,所以这里需要添加@alias标识来固定方法名)
![](https://img.haomeiwen.com/i12206610/97ce3cc2f7c9a0a3.png)
(2)实现效果。
![](https://img.haomeiwen.com/i12206610/a0bb98ca2a5fb60e.png)
9、@example 提供一个如何使用描述项的例子
(1)使用@example提供一个如何使用描述项的例子。
跟随此标签的文字将显示为高亮代码。写法如下:
![](https://img.haomeiwen.com/i12206610/c84add39d0ec38e3.png)
(2)实现效果
![](https://img.haomeiwen.com/i12206610/6850948b2159ce57.png)
10、@Tutorial 添加教程到API文档中。
(1)描述。
可以添加自定义的html、htm、markdown(转换Markdown为HTML)、md(转换 Markdown 为 HTML)、.xhtml、xml(作为HTML处理)等格式的文件作为教程放入API文档中。
(2)加载tutorial需要在jsdoc.conf.json中配置如下(注意指定好路径):
![](https://img.haomeiwen.com/i12206610/7a08570b2fe99b6f.png)
(3)文件放入指定文件夹
![](https://img.haomeiwen.com/i12206610/b3138c11b9f90e6c.png)
(4)实现效果
![](https://img.haomeiwen.com/i12206610/50d1a422f57c6809.png)
(5)API中任意位置如何引用教程。
![](https://img.haomeiwen.com/i12206610/033391d7d8484cd7.png)
(6)教程引用实现效果(点击可跳转到教程页面)
![](https://img.haomeiwen.com/i12206610/fc98000576ec0b7f.png)
![](https://img.haomeiwen.com/i12206610/4879a8d1aa215ff5.png)
(7)自定义修改教程名。
教程中的标题默认是取得文件名,也可以自定义修改,可以在tutorial路径中新建一个json文件,文件名随意,里面进行配置如下(注意取得都是文件名作为标识):
![](https://img.haomeiwen.com/i12206610/d0e8832bf8ec555e.png)
(8)教程名自定义实现效果
![](https://img.haomeiwen.com/i12206610/653d2f1ee5c48619.png)
(9)分级教程实现效果(父教程里可以跳转到子教程)
![](https://img.haomeiwen.com/i12206610/f2533c96e8faee7b.png)
![](https://img.haomeiwen.com/i12206610/6b7ffc0703342dd9.png)
11、@mixin和@mixes 记录一个mixin(混入)对象和 此对象混入了另一个对象中的所有成员。
(1)描述。
使用@mixin标签标识该对象是一个mixin(混入),旨在表明该对象的属性和方法混入到其他对象。然后,可以将@mixes标签 添加到使用了该 mixin(混入)的对象上。
@mixes标签指示当前对象混入了OtherObjectPath对象的所有成员,被混入的对象就是一个@mixin。
(2)使用。
比如我要将Area混入到AttOper中:
![](https://img.haomeiwen.com/i12206610/4a4032e1aaa92ed2.png)
![](https://img.haomeiwen.com/i12206610/a29cd3f604c74cfe.png)
(3)实现效果(点击可跳转)。
![](https://img.haomeiwen.com/i12206610/b50fbd982b1b54bf.png)
![](https://img.haomeiwen.com/i12206610/35dbd717869ebb43.png)
12、@extends 指名这个子类继承至哪个父类,后面需要加父类名(别名:@augments).
(1)描述:
@augments or@extends标签指明标识符继承自哪个父类,后面需要加父类名。你可以使用这个标签来记录基于类和并基于原型的继承。如果一个标识符继承自多个父类,并且多个父类有同名的成员,JSDoc使用来自列出的JSDoc注释中最后一个父类的文档。
(2)使用。
注意,后面跟的类名以该类中@alias标签中的名字为准。
![](https://img.haomeiwen.com/i12206610/692ebbd8081900c6.png)
![](https://img.haomeiwen.com/i12206610/b4bb47adf72dec53.png)
(3)实现效果(点击可跳转)。
![](https://img.haomeiwen.com/i12206610/cf3636d26d7b63a6.png)
![](https://img.haomeiwen.com/i12206610/fdbaefb735b723a9.png)
13、@typedef记录一个自定义的类型。
(1) 描述。
@typedef标签在描述自定义类型时是很有用的,特别是如果你要反复引用它们的时候。尤其是针对复杂的数据类型的时候。
(2)使用说明。
比如我要自定义一个复杂的数据类型,其包含多个属性。
![](https://img.haomeiwen.com/i12206610/dab8ed5bc882c988.png)
![](https://img.haomeiwen.com/i12206610/108b98c11f45c10f.png)
(3)实现效果(点击可跳转)。
![](https://img.haomeiwen.com/i12206610/372f79729c18cd87.png)
![](https://img.haomeiwen.com/i12206610/baedfb5b4a4bee7a.png)
14、@link 生成一个链接指向定义的namepath或者URL
(1)描述。
{@link}内联标签创建一个链接到您指定的namepath或URL。当您使用{@link}标签,还可以提供几种不同的格式的链接文本。如果你不提供任何链接文本,JSDoc使用namepath或URL作为链接文字。如果需要链接到一个教程,使用{@tutorial} 内联标签 代替{@link}标签。
(2)使用。
注意:@link标签及其文本必须放到花括号{}中,@link标签中的文本可以起别名,格式为:文本内容|别名(别名放在文本内容后面,中间用|隔开)
![](https://img.haomeiwen.com/i12206610/965c11fc46cdf95a.png)
![](https://img.haomeiwen.com/i12206610/dc841f9e30f50909.png)
(3)实现效果(点击可跳转)。
![](https://img.haomeiwen.com/i12206610/7eb57206016b5825.png)
![](https://img.haomeiwen.com/i12206610/9c0dd5c55c22845d.png)
15、@abstract 这个成员必须在继承类中实现(或重写)。
说明
别名: @virtual。该成员(一般指父类的方法)必须在继承的子类中实现(或重写)。
16、@access 指定该成员的访问级别(私有 private,公共 public,或保护 protected)
说明
该标签指定该成员的访问级别(私有 private,公共 public,或保护 protected)。你可以使用与@access标签同义的其他标签:
@access private 等价于 @private;
@access protected 等价于 @protected;
@access public 等价于 @public;
注意: 私有成员(@private)不会显示在生成的输出文档中。
语法
@access
17、@author 指定项目的作者。
(1)说明
@author标签标识一个项目的作者。在JSDoc3.2和更高版本中,如果作者的名字后面跟着尖括号括起来的电子邮件地址, 默认模板将电子邮件地址转换为mailto:链接。比如:
(2)语法
@author []
(3)使用说明
![](https://img.haomeiwen.com/i12206610/d90d0330fe778ba9.png)
(4)实现效果
![](https://img.haomeiwen.com/i12206610/59c554c13215545d.png)
18、@borrows 这个对象使用另一个对象的某些东西。
(1)说明
@borrows标签允许您将另一个标识符的描述添加到你的当前描述。如果你不止在一个地方引用同一个函数,但是你又不想重复添加同样的文档描述到多个地方,这个时候非常有用。
(2)语法
@borrows as
![](https://img.haomeiwen.com/i12206610/00555ac3be449697.png)
19、namepath格式说明。
namepath在JSDoc中起着至关重要的作用,JSDoc
namepath会提供一个唯一的标识给任意一个变量,这使得你在使用inline
tag时,可以方便的找到任何一个变量,从而提供一个指向该变量的链接。使用格式如下:
MyConstructor //父元素
MyConstructor#instanceMember //成员变量使用#
MyConstructor.staticMember //静态变量使用.
MyConstructor~innerMember //内部成员使用~
module: MyConstructor // module使用:
20、@constant 记录一个对象作为一个常量。
(1)描述
别名:@const。标签指明这个对象是一个常量。
(2)语法
@constant[ ]
![](https://img.haomeiwen.com/i12206610/51100e00f87727b3.png)
21、@default 记录默认值。
(1)描述
别名:@defaultvalue。@default标签可以让你记录标识的赋值。可以在标签后面跟上他的值,或者当值是一个唯一被分配的简单值(可以是:一个字符串,数字,布尔值或null)的时候,你可以让JSDoc从源代码中获取值,自动记录 。
(2)语法
@default[]
![](https://img.haomeiwen.com/i12206610/918e7d8f0513fbfd.png)
22、@enum 描述一个相关属性的集合。
(1)描述
@enum标签描述一个静态属性值的全部相同的集合。枚举类似一个属性的集合,除了枚举自己的描述注释之外,属性都记录在容器内部的注释中。通常这种标签是与@ReadOnly结合使用,作为一个枚举通常表示常量的集合。
(2)语法
@enum[]
![](https://img.haomeiwen.com/i12206610/5992061e036ef25b.png)
23、@event 描述一个事件。
(1)描述
描述一个事件。@event标签允许您描述一个可触发的事件,一个典型的事件是由对象定义的一组属性来表示。
标签来定义事件的具体类型,您可以使用@fires标记,以表明这个种方法可以触发该事件。你还可以使用@listens标签,以指示表明用这个表示来侦听该事件。
(2)语法
@event#[event:]
![](https://img.haomeiwen.com/i12206610/04f83b9e9399e3aa.png)
24、@fires 描述这个方法可能会触发哪些事件。
(1)描述
@fires标签标明当一个方法被调用时将触发一个指定类型的事件,使用@event标签来描述事件的内容。
(2)语法
@fires#[event:]
![](https://img.haomeiwen.com/i12206610/15652439e901bcd9.png)
25、@member 记录一个成员。
(1)描述
别名:@var。@member标签记录成员基本种类(kind),比如"class", "function", 或者 "constant"。一个成员可以任选地具有一个类型以及名称。
(2)语法
@member[] []
![](https://img.haomeiwen.com/i12206610/789dba7e5491ba1b.png)
26、@memberof 标明这个标识属于哪个父级标识。
(1)描述
@memberof标签标明成员隶属于哪一个父级标识符。
默认情况下,@memberof标签标注的标识符是静态成员。对于内部成员和实例成员,你可以使用对应名称路径的符号,或明确标注@inner或@instance标签。
“强制的”@memberof标签,@memberof!强制对象被记录为属于特定的父级标识符,即使它有不同的父级标识符。
(2)语法
@memberof
@memberof!
在下面的例子中,hammer函数通常会被描述为一个全局性的函数。事实上,它就是一个全局性的函数,但同事它也是Tools命名空间的一个成员,而这才是你想描述的。解决方案就是增加一个@memberof标签。
![](https://img.haomeiwen.com/i12206610/5b5f0ffd84b1058e.png)
27、@module 记录一个JavaScript 模块。
(1)描述
@module可以将当前文件标注为一个模块,默认情况下文件内的所有标识符都隶属于此模块,除非文档另有说明。
链接到模块(比如使用@link或者@see标签)使用"module:moduleName"。例如,可以使用"{@link
module:foo/bar}"链接到"@module foo/bar"。
如果未提供模块的名称,那么JSDoc将从模块的路径和文件名获得模块名称。
(2)语法
@module [[{}] ]
![](https://img.haomeiwen.com/i12206610/5b9fa25c6859f074.png)
28、@name 记录一个对象的名称。
(1)描述
@name标签强制JSDoc使用这个给定的名称,而忽略实际代码里的名称。这个标签最好用于"虚拟注释",而不是在代码中随时可见的标签,如在运行时期间产生的方法。
当您使用@name标签,你必须提供额外的标签,来告诉JSDoc什么样的标识符将被文档化;该标识符是否是另一个标识符的成员;等等。如果不提供这些信息,标识符将不会被正确文档化。
警告:通过使用@name标签,你告诉JSDoc忽略实际代码,隔离您的文档注释。在许多情况下,最好是使用@alias 标签代替,这个标签只是改变了标识符的名称,但是保留了标识符的其他信息。
(2)语法
@name
![](https://img.haomeiwen.com/i12206610/3141cdb83fca011f.png)
29、@namespace 记录一个命名空间对象。
(1)描述
@namespace标签指明对象是一个命名空间。你也可以书写一个虚拟JSDoc注释,通过使用代码来定义命名空间。
如果一个命名空间是由除对象字面量以为的标识符定义的,您可以包括一个 type 的表达式,跟在@namespace标签后面。如果@namespace标签包括一个type,那么它也必须包含一个名称。
您可能需要描述一个命名空间,其名称中包含特殊字符,如"#" 或 "!"。在这些情况下,当你的描述或链接到这个命名空间时,你必须将命名空间中特殊符号部分使用双引号括起来。
(2)语法
@namespace [{}] ]
![](https://img.haomeiwen.com/i12206610/5dd6fd68e70110f0.png)
30、@override 指明一个标识符标识重写父类方法。
(1)描述
@override标签指明一个标识符覆盖其父类同名的标识符。
默认情况下,JSDoc自动识别,覆盖其父类同名的标识符。
(2)语法
![](https://img.haomeiwen.com/i12206610/6b063c4817d2d24b.png)
31、@property 记录一个对象的属性。
(1)描述
@property标签主要用来描述类,命名空间或其它对象的静态属性列表。
通常JSDoc模板将创造一个全新的页面来显示关于命名空间嵌套的每一层级的信息。有时候,你真的想要在同一张页面上列出所有属性,包括嵌套的属性。
请注意,@property标记必须在命名空间或类的文档注释块中使用。该标签适用于静态属性的简单集合,它不允许你为每个属性提供@examples或类似的复杂信息,只包含类型,名称和说明。
(2)语法
![](https://img.haomeiwen.com/i12206610/5f04a985652e9d82.png)
32、@returns 记录一个函数的返回值。
(1)描述
别名:@return。 标签描述一个函数的返回值。
(2)语法
![](https://img.haomeiwen.com/i12206610/c5b5f1f01056b803.png)
![](https://img.haomeiwen.com/i12206610/15b0b45f3d3a0ffb.png)
33、
网友评论