Javascript 有没有办法避免使用JSDoc@方法“;注释

Javascript 有没有办法避免使用JSDoc@方法“;注释,javascript,jsdoc,Javascript,Jsdoc,我个人不太喜欢生成文档(我更喜欢“阅读源代码Luke”之类的人),但我可以看出这样的文档对其他人可能有什么用处。现在,通常他们生成的文档不会影响我,除了一件事:@method 大多数JSDoc注释(例如@param)对于阅读源代码的人来说仍然非常有用,但是@method是100%冗余的: /* * @param num number to add five to * @method addFive */ function addFive(num) { ... 所以,我真的希望避免成百上千

我个人不太喜欢生成文档(我更喜欢“阅读源代码Luke”之类的人),但我可以看出这样的文档对其他人可能有什么用处。现在,通常他们生成的文档不会影响我,除了一件事:@method

大多数JSDoc注释(例如
@param
)对于阅读源代码的人来说仍然非常有用,但是
@method
是100%冗余的:

/*
 * @param num number to add five to
 * @method addFive
 */
function addFive(num) { ...
所以,我真的希望避免成百上千的
@method
行把我们的代码弄得乱七八糟。然而,我的同事认为,
@method
对于JSDoc生成器(他使用的是YUI生成器)能够生成类的方法列表是必要的

因此,我的问题(对那里的JSDoc专家来说)是:有没有办法在没有
@method
的情况下生成有用的文档(即使用列出的类的方法)?或者如果确实需要
@method
,是否有任何JSDoc生成器可以从函数名推断出方法名,这样我就可以不用
@method
而不用
@methodaddfive


另外,如果有一个“你做错了”类型的答案,它不是直接回答问题,而是建议一种完全避免问题的方法,我很乐意听到它;我当然不是JSDoc专家。

我可能错了,但由于JavaScript中有多种定义方法,您需要
@method
来定义某些定义

// JSDoc will recognize this as an object member
var obj = {
    mymethod: function() {}
};

// There is no way for JSDoc to tell where my method is going to end up
var mymethod = function() {};
obj.mymethod = mymethod;

你的同事不是完全正确的

@方法
是一个扩展,它是
@函数
的同义词,即

正如这些文档所概述的,您只需要使用
@function
强制JSDoc将变量识别为函数。这方面的一个例子是:

/**
 * @function
 */
var func = functionGenerator.generate();
从对象的角度来看,每当您以不明显的方式将函数对象分配给对象成员时,您都希望执行相同的操作(我所说的“不明显”,是指静态分析,即如果您没有使用函数表达式)

比如

var ageGetter = function() {
    console.log("A lady never tells");
}

var Person = {

  name: "Gertrude", 

  getAge: ageGetter

  getName: function() {
    return this.name;
  }
}
对于
getAge
,需要显式使用
@方法
@函数
,但对于
getName
则不需要

最后一点:您不需要显式地包含
@方法
名称,除非也无法推断(在这一点上,您可能正在进行一些非常时髦的实例化,因此可能无法完全依赖自动文档生成)