私は自分の 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 を式に追加すると、多くの構造がぼやけて見えます。