如何在JavaScript中返回文档

前端之家收集整理的这篇文章主要介绍了如何在JavaScript中返回文档前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为浏览器应用程序在工作中编写自己的图书馆,并且我有同样的旧问题决定如何评论代码.

我试图遵循JsDoc语法,但可能会继续Google Closure Compiler的方式.我可能最终在文档中使用两个@return和@returns标签,仅用于可移植性(当我设置文档的自动生成时).@H_404_3@

现在,问题是,你如何记录一个自定义匿名对象从一个函数返回?例如:@H_404_3@

  1. return {
  2. username: 'username',password: 'password',enabled: true
  3. };

JsDoc有一个例子,说明如何使用@param来记录某些字段的对象,而不是@returns标签.类似地,记录类型的Google Closure Compiler文档是模糊的,没有任何示例可以使用.@H_404_3@

解决方法

Closure编译器使用 JSDoc annotations的子集(并添加了它自己的一些).查看 annotation reference for the compiler的整套. JSDoc注释类似于JavaDoc注释,是以/ **(两颗星)开头的注释块.虽然注释的每一行通常以自己的*开头,但这是不需要的约定.每行只允许一个JSDoc标签,但标签的参数可以跨多行.

注释通常适用于以下语句.这里有些例子:@H_404_3@

变量@H_404_3@

  1. /** @type {string} */ var a;

输入Cast@H_404_3@

  1. var b = /** @type {string} */ (window['foo']);

注意额外的括号@H_404_3@

命名功能@H_404_3@

  1. /**
  2. * @param {string} bar
  3. * @return {boolean}
  4. */
  5. function foo(bar) { return true; }

函数表达式@H_404_3@

  1. /** @type {function(string):boolean} */
  2. var foo = function(bar) { return true; }
  3.  
  4. var foo2 =
  5. /**
  6. * @param {string} bar
  7. * @return {boolean}
  8. */
  9. function(bar) { return true; }

的typedef@H_404_3@

可以使用typedef为复杂类型(包括联合和记录类型)进行别名,以方便和维护.这些注释可能很长,但可以分割多行以便可读性.@H_404_3@

  1. /** @typedef {{
  2. * foo:string,* bar:number,* foobar:number|string
  3. * }}
  4. */
  5. var mytype;

对于您的原始示例,有几种可能的方法来注释这样的函数返回值.记录类型中最具体和最方便的一个:@H_404_3@

  1. /** @return {{username:string,password:string,enabled:boolean}} */
  2. function() {
  3. return {
  4. username: 'username',enabled: true
  5. }
  6. }

注意额外的{}.还要记住,记录类型不会阻止属性重命名.@H_404_3@

该注释告诉编译器该函数返回匿名类型,其用户名,密码和已启用的属性.其他有效的选项将是在其他地方定义一个接口,并将返回值打包为该接口.最不具体的注释将是Object或*.@H_404_3@

要查看各种可能的注释,请查看extern files in the Compiler project.@H_404_3@

猜你在找的JavaScript相关文章