0

私は自分の JS ドキュメントを正しく取得しようとしています。私は Dojo と、その上に構築された他の複雑なフレームワークを使用しています。詳細は省きます。ポイントは、このフレームワークが AMD モジュールを使用していることです。JSDoc を機能させたい。

これが私がこれまでに持っているものです:

/**
 * Creates a button instance that launches a document entry template selector
 * @module widgets/instance/AddButton
 */
define([
    "dijit/_TemplatedMixin",
    "dijit/_WidgetBase",
    "dojo/_base/declare",
    "dojo/_base/lang",
    "dojo/on",
    "kwcn/services/request",
    "kwcn/widgets/AddContentDialog"
], function (_TemplatedMixin, _WidgetBase, declare, lang, on, request, AddContentDialog) {
    return declare('AddButton', [_WidgetBase, _TemplatedMixin], /** @lends module:widgets/instance/AddButton */{
        id: 'add-button',
        contentList: null,
        templateString: '<button class="btn btn-link toolbar-link"><i class="fa fa-lg fa-file"></i> Add Document</button>',
        addContentItem: null,
        type: null,
        /**
         * @constructs
         * @param args
         * @param args.type {string} The type of content item
         * @param args.contentList {ContentList} The instance of [ContentList]{@link module:widgets/contentList/ContentList} in scope
         */
        constructor: function (args) {
            declare.safeMixin(this, args);
        },
        /**
         * @private
         */
        postCreate: function () {
            console.log("creating the add content button...");
            this.addContentItem = new AddContentDialog({
                repository: request.repository(),
                hasCase: false
            });
            this.own(on(this.domNode, 'click', lang.hitch(this, 'show')));
        },
        /**
         * @public
         */
        show: function () {
            request.inboundFolder().then(lang.hitch(this, function (folder) {
                this.addContentItem.showAddDocument(null, folder);
            }));
        }
    });
});

結果: ここに画像の説明を入力

この結果は悪くない。しかし、それは私のメンバーが静的であることを示唆しています。WebStorm はそれらをメンバーとして正しく推測しているようですが、jsdoc3 ジェネレーターはそうではありません。私が読んだことから、@lendsがそれを処理する必要があるため、@memberofを指定する必要はありません。私が間違っていることはありますか?一般的な推奨事項をいただければ幸いです。JSDoc3 のドキュメントを読みましたが、AMD を式に追加すると、多くの構造がぼやけて見えます。

4

1 に答える 1

2

オブジェクト自体ではなく、インスタンス プロパティをプロトタイプに貸与する必要があります@lends module:widgets/instance/AddButton#。末尾の # に注意してください。これは の省略形です.prototype

また、jsdoc3 には、CommonJS 以外のモジュールの処理に関連するバグがかなりあることに注意してください。そのため、正しく機能させるには、追加のハック作業が必要になる場合があります。

于 2014-10-16T21:48:31.763 に答える