JSDocs - 如何记录隐式参数和返回

时间:2016-12-15 07:43:55

标签: javascript documentation jsdoc

我想知道如何记录如下函数:

loadMore(){
  let posts = this.state.posts;
  let lastPost = posts[posts.length - 1];

  $.ajax({
    url: this.paginationURL(),
    data: { page: lastPost.id },
    type: 'GET',
    dataType: 'json',
    success: (response) => {
      this.setState({
        posts: this.state.posts.concat(response.posts)
      })
    }
  })
}

从技术上讲,this.type是一个输入参数,this.input是从该对象返回的内容。如何记录这个?

2 个答案:

答案 0 :(得分:0)

sapithpocker对第二个链接的重复似乎显示了一个潜在的解决方案。

/**
 * The context of the current class.
 * @typedef {Object} ClassContext.
 * @property {string} type - Indicates type. */

/**
 * A method for doing something.
 * @param {...ClassContext} this - a {@link ClassContext} object.
 */
function createInput() { /* Code */ }

这是一个文档,可以为每个方法重用“拥有”当前上下文的对象,即this,并遵循DRY原则。

答案 1 :(得分:-1)

最好以某种方式重写代码,以便它接受参数并返回一些没有任何副作用的值。也很容易记录!

问题应该更像是如何避免副作用,而不是如何记录副作用

var createInput = function (type) {
  return {
    val: {},
    type: type
  };
}

this.input = createInput(this.type);