2014-12-11 10 views
7

Ho una classe in cui i metodi individuali possono essere chiamati in modo statico, ma restituirà una nuova istanza della classe al fine di catena, ad esempio:Documentare un costruttore privato con JSDoc

var builder = ns 
    .setState('a', 'A') 
    .setState('b', 'B'); 

Dove Builder è definito come ad esempio:

/** 
* @module Builder 
*/ 

/** 
* @class Builder 
*/ 

/** 
* @private 
*/ 
function Builder() { 
    this.state = { 
    query: {} 
    }; 
} 
Builder.prototype = { 
    /** 
    * @param {string} k - The key 
    * @param {object} v - The value 
    * @return {Builder} 
    */ 
    setState: function(k, v) { 
    var that = (this instanceof Builder) ? this : new Builder(); 
    that[k] = v; 
    return that; 
    } 
    // Other properties and methods… 
} 

Il costruttore Builder è mai dovrebbe essere chiamato in modo esplicito dal codice utente e quindi mi piacerebbe che non compare nella documentazione. Tuttavia, tutte le combinazioni che ho provato con i tag JSDoc (ad esempio @private, @constructs, ecc.) Non sembrano sopprimerlo dai documenti creati.

risposta

2

Dovresti essere in grado di utilizzare la direttiva @ignore per ottenere ciò. Da i documenti:

Il tag @ignore indica che un simbolo nel codice non dovrebbe mai apparire nella documentazione. Questo tag ha la precedenza su tutti gli altri.

http://usejsdoc.org/tags-ignore.html