2016-04-28 18 views
0

Ich habe ein Objekt, das mehrere Methoden enthält und ein Mitglied einer Klasse ist. Wie würde ich dies mit JSDoc dokumentieren?Wie dokumentiere ich Symbole mit einer Tiefe größer als 2 in JSDoc?

Hier ist mein Versuch. Damit ist SomeClass#helperFunctions dokumentiert, aber beide Methoden entfallen.

/** 
 
* @class SomeClass 
 
* @param name 
 
*/ 
 
var SomeClass = function(name) {}; 
 

 
/** 
 
* @member SomeClass#helperFunctions 
 
*/ 
 
SomeClass.prototype.helperFunctions = { 
 
    /** 
 
    * @method SomeClass#helperFunctions.doSomething 
 
    * @param {Array} arr 
 
    */ 
 
    doSomething: function(arr) {} 
 
}; 
 

 
/** 
 
* @method SomeClass#helperFunctions.doSomethingElse 
 
* @param {Array} arr 
 
*/ 
 
SomeClass.protype.helperFunctions.doSomethingElse = function(arr) {};

Antwort

0

Dies ist das Beste, was ich tun konnte.

Ich dokumentiere Methoden von SomeClass#helperFunctions als Globals dann enthalten sie als Eigenschaften von SomeClass#helperFunctions mit Links.

/** 
* @class SomeClass 
* @param {String} name 
*/ 
var SomeClass = function(name) {}; 

/** 
* @member SomeClass#helperFunctions 
* @property {Function} doSomething [_doSomething]{@link _doSomething} 
* @property {Function} doSomethingElse [_doSomethingElse]{@link _doSomethingElse} 
*/ 
SomeClass.prototype.helperFunctions = { 
    doSomething: _doSomething, 
    doSomethingElse: _doSomethingElse 
}; 

/** 
* @function _doSomething 
* @param {Array} arr 
*/ 
_doSomething = function(arr) {}; 

/** 
* @function _doSomethingElse 
* @param {Array} arr 
*/ 
_doSomethingElse = function(arr) {}; 

In meiner eigentlichen Anwendung SomeClass war auch ein Modul, so dass es wie geschrieben wurde:

/** 
* @module path/to/SomeClass 
*/ 

/** 
* @class module:path/to/SomeClass 
*/ 
var SomeClass = module.exports = function() {}; 

Dann werden die Links als {@link module:path/to/SomeClass~_doSomething} geschrieben wurden, so wäre es Link, um es vor Ort ist auf der Modulseite anstatt in Globals nach ihnen zu suchen.