如何使用jsdoc记录函数生成器?

6

我试图记录一个函数生成器,但没有成功,以下是一个例子:

function genericObjectGenerator(tagname) {
  var specificObject = function () {};

  specificObject.getClassName = function () {
    return tagname;
  }

  specificObject.prototype.sayHello = function(name) {
    return tagname + " says hello to " + name;
  }

  return specificObject;
}

var MyObject = genericObjectGenerator("object1");

var myObjectInstance = new MyObject();

myObjectInstance.sayHello();

我应该如何记录genericObjectGenerator和specificObject函数,以便JSDoc(和IntelliJ)能够正确解析sayHello。


1
反模式需要更多的抑制。 - katspaugh
1个回答

0

这应该能解决问题

/**
 * @param {string} tagname - the name of the tag
 * @returns {specificObject}
 */

function genericObjectGenerator(tagname) {
    var specificObject = function () {};

    specificObject.getClassName = function () {
        return tagname;
    };

    /**
     * @param {string} name - name as string
     * @returns {string}
     */

    specificObject.prototype.sayHello = function(name) {
        return tagname + ' says hello to ' + name;
    };

    return specificObject;
}

var MyObject = genericObjectGenerator('object1');

var myObjectInstance = new MyObject();

myObjectInstance.sayHello(123); // mark as warning
myObjectInstance.sayHello('123'); // not marking

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接