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.