配列要素が次のいずれかになり得る場合にJSDocでArray
戻り値(およびパラメーター)を文書化する方法:
String
、Array
)。配列内のオブジェクトのタイプを文書化する方法を探している場合は、次のようなものが必要です。
/**
* @param {String[]} aliases
*/
http://code.google.com/p/jsdoc-toolkit/wiki/TagParam#Parameter_Type_Information
与えられたscreenings
パラメータ:
screenings = [
{
timestamp: 1440157537,
url: 'https://stackoverflow.com/a/22787287/1269037',
},
{
timestamp: ...,
url: ...,
},
];
次の3つの方法のいずれかで文書化できます。
@typedef
の使用:/**
* @typedef {Object} screening
* @property {Number} timestamp - UNIX timestamp.
* @property {String} url - Booking URL.
*/
/**
* @param {screening[]}
*/
function positionTimes (screenings) {}
screening
オブジェクトのバリエーションを使用する関数が複数ある場合は、関数の名前空間を使用できます。
/**
* @typedef {Object} positionTimes~screening
* @property {Number} timestamp - UNIX timestamp.
* @property {String} url - Booking URL.
*/
/**
* @param {positionTimes~screening[]}
*/
function positionTimes (screenings) {}
/**
* @typedef {Object} filterTimes~screening
* @property {Number} timestamp - UNIX timestamp.
* @property {String} url - Booking URL.
*/
/**
* @param {filterTimes~screening[]}
*/
function filterTimes (screenings) {}
/**
* @param {Object[]} screenings
* @param {Number} screenings[].timestamp - Unix timestamp.
* @param {String} screenings[].url - Booking URL.
*/
function positionTimes (screenings) {}
戻り値には名前がないため、これは @return
された型の記述には機能しません。
/**
* @param {Array.<{timestamp: Number, url: String}>} screenings
*/
function positionTimes (screenings) {}
このアプローチの利点は、ワンライナーであるため、2番目の方法が機能しない@return
宣言で使用できることです。
コレクション定義アプローチの欠点は、プロパティ値を記述できないことです。
他のいくつかの回答で与えられたガイダンスがあなたのために働くことに気付くかもしれませんが、私はこの構文を好みます:
/**
* @return {Array<String>} ...
*/
そして、他の人が提供したガイダンスと比較して、これはあなたがあなたの質問で与えた例に基づいてあなたの期待に近いと思います。
JSDocに関する優れた情報源は次のとおりです。 https://wiki.servoy.com/display/public/DOCS/JSDoc+Annotations
のJSDocのドキュメントhttp://usejsdoc.org/タイプMyClass
のメンバーを持つ配列の例があります。 2つの可能性があります。 1つは次のようになります。
@param{MyClass[]}
このような他のもの:
@param{Array.<MyClass>}
Array
と.
の間の<
に注意してください。