JSDocでオブジェクトの配列をパラメーターまたは戻り値として指定する方法は?


105

JSDocでは、特定のタイプの配列(文字列の配列など)がある場合、私が見つけることができる最良のドキュメントは次を使用することを示しています。

/**
 * @param {Array.<string>} myStrings All my awesome strings
 */
 function blah(myStrings){
     //stuff here...
 }

以下の疑問符をどのように置き換えて、オブジェクトの配列を指定しますか?

/**
 * @param {???????} myObjects All of my equally awesome objects
 */
 function blah(myObjects){
     //stuff here...
 }

回答:


180

JSDocの意味をより具体的にする必要があります。これは、JavaScriptのほとんどすべてのJavaDocスタイルのドキュメントツールをカバーする一般的な用語です。

文字列の配列に使用した構文は、Google Closure Compilerでサポートされているものと似ています

これを使用すると、オブジェクトの配列は次のようになります。

/**
 * @param {Array.<Object>} myObjects
 */

または単に何かの配列-これはほとんどすべてのドキュメントツールで動作するはずです。

/**
 * @param {Array} myArray
 */

jsdoc-toolkitJSDoc 3、およびJSDuckは、オブジェクトの配列を示す次の構文をサポートしています。

/**
 * @param {Object[]} myArray
 */

編集する

キーと値の変数タイプがわかっている場合は、次のことも実行できます。

/**
 * @param {Array.<{myNumber: Number, myString: String, myArray: Array}>} myObjects
 */

または

/**
 * @param {{myNumber: Number, myString: String, myArray: Array}[]} myObjects
 */

10
。表記法は現在廃止されており、そのサポートは後で削除する必要があります。現在の正しいバージョンは{Array<Object>}です。この投稿を最新に保つためだけに。
Kenny806

2
JSDoc 3では、文字列配列の配列をどのように文書化しますか?古い構文では、次のようなことをするかもしれませんArray.<string[]>
Snekse

9
@ Kenny806非推奨?参考資料は?
Wilt

2
@Wilt:JSDocドキュメントは、山括弧の前のドットについて矛盾しています。
Dan Dascalescu 2017年

2
この回答では、その配列内のオブジェクトのキーを宣言する方法、および特定のキーを戻り値の型として持つオブジェクトの配列を宣言する方法については説明していません。この答えはそうです。
Dan Dascalescu 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.