45

パラメータの型を混在させることができる場合、JSDocを使用して JavaScript でメソッドを文書化するにはどうすればよいですか?

HTMLまたは独自のViewableオブジェクトを表示できるDialogオブジェクトのメソッドがあります。メソッド JSDoc は次のようになります。

/**
 * Can pass in viewable object, or some HTML element
 *
 * @param viewable viewable {Viewable} or HTML element {HTMLElement} or String {string}
 * @param {Boolean} cancelable is cancellable
 * @param title string or data object of String and Id {Title:String, Id:String} for setting HTML id value
 * @param {Array} actions array of functions actions display buttons on the bottom connecting to the passed in functions
 * @param {String} size mode. Can be mini,small,medium,large,maxi. Or of type {width:number, height:number}
 * @param {Number} zindex starting z-order. Note: first level dialog = 10,11,12, second level dialog 13,14,15 etc.
 */
Dialog.showElement = function(viewable, cancelable, title, actions, mode, zindex){
..
}

JS ではメソッドのオーバーロードが許可されていないため、これらの種類のメソッドを作成する必要があります。メソッドのパラメーターは 2 つの異なる型になる可能性があります。これを JSDoc で文書化する方法はありますか、または JSDoc では 1 つの型のパラメーターのみを文書化できますか?

また、 type のパラメーターをどのように文書化します{Title:String, Id:String}か? つまり、渡されたオブジェクトは型ではありません。準、JSON オブジェクト。

4

2 に答える 2

59

セパレーターを使用|して、メソッド タイプ シグネチャで複数のタイプを指定できます。

/**
 * Some method
 * @param {Object|string|number} param The parameter.
 * @returns {Object|string|number} The modified param.
 */
function doSomething(param) {
    return etc..
};
于 2013-05-27T10:37:54.117 に答える
8

Google Closure Compiler Docsでは、次の形式を推奨しています。これはusejsdoc.orgにあるものと同じであるため、公式に見えます。

/**
 * Some method
 * @param {(Object|string|number)} param The parameter.
 * @returns {(Object|undefined)} The modified param.
 */
function doSomething(param) {
    return etc..
};

上記のリンクされたクロージャコンパイラのドキュメントを引用するには:

必須の括弧に注意してください。

于 2015-01-26T02:57:34.433 に答える