2014-12-11 10 views
7

Mam klasę gdzie poszczególne metody mogą być wywołana statycznie ale powróci nową instancję klasy w celu łańcucha, na przykład:Dokumentowanie prywatną konstruktora z JSDoc

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

Gdzie Builder jest zdefiniowany jako takie:

/** 
* @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… 
} 

konstruktor Builder jest nigdy powinien być nazywany wyraźnie kodem użytkownika, a więc chciałbym go nie pokazać się w docs. Jednak wszystkie kombinacje, które wypróbowałem z tagami JSDoc (np. @private, @constructs, itp.) Nie wydają się tłumić go z wbudowanych dokumentów.

Odpowiedz

2

Powinieneś być w stanie użyć dyrektywy @ignore, aby to osiągnąć. Z dokumentacji:

Znacznik @ignore oznacza, że ​​symbol w kodzie nie powinien nigdy pojawiać się w dokumentacji. Ten tag ma pierwszeństwo przed wszystkimi innymi.

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