1

次のコードフラグメントを文書化する方法は? そのまま放置するとFoo.bar何の説明もありません。タグを追加する@memberofと、静的プロパティとして文書化されます。@instanceタグを追加しても何も変わりません。これはかなり単純で一般的なコード パターンなので、簡単に文書化できるはずですよね? 私はjsdocが嫌いです...

/**
 * @namespace
 */
var ns;

(function (ns) {
    'use strict';

    /**
     * Constructs class
     * @class ns.Foo
     */
    function Foo() {
    }

    /**
     * Blabla
     */
    Foo.prototype.bar = function () {

    };

    ns.Foo = Foo;

})(ns || (ns = {}));
4

2 に答える 2

3

@lends関数内にあるものが名前空間に属していることを jsdoc に伝えるために使用します。@memberofこのようにして、コードをどこにでも追加する必要はありません。ここで実行すると、次のように動作します。

/**
 * @namespace
 */
var ns;

(/** @lends ns */ function (ns) {
    'use strict';

    /**
     * Constructs class
     * @class
     */
    function Foo() {
    }

    /**
     * Blabla
     */
    Foo.prototype.bar = function () {

    };

    ns.Foo = Foo;

})(ns || (ns = {}));
于 2014-10-07T16:20:51.050 に答える
1

@instance に加えて @function と @memberof を追加する必要があると思います。これは jsdoc にそれが何であり、どこに適合するかを伝えます:

/**
 * Blabla
 * @function bar
 * @memberof ns.Foo
 * @instance
 */
Foo.prototype.bar = function () {

};

jsdocも鈍いことがわかりました...そこにぶら下がってください。:-)

于 2014-10-07T16:10:36.087 に答える