現在、オブジェクトをパラメータ/タイプとして文書化する方法は4つあります。それぞれに独自の用途があります。ただし、戻り値のドキュメント化に使用できるのは3つだけです。
プロパティの既知のセットを持つオブジェクト(バリアントA)
/**
* @param {{a: number, b: string, c}} myObj description
*/
この構文は、この関数のパラメーターとしてのみ使用され、各プロパティの詳細な説明を必要としないオブジェクトに最適です。それはのために使用することができる@returns
だけでなく。
プロパティの既知のセットを持つオブジェクト(バリアントB)
プロパティ構文を持つパラメータは非常に便利です:
/**
* @param {Object} myObj description
* @param {number} myObj.a description
* @param {string} myObj.b description
* @param {} myObj.c description
*/
この構文は、この関数のパラメーターとしてのみ使用され、各プロパティの詳細な説明が必要なオブジェクトに最適です。には使用できません@returns
。
ソースの複数のポイントで使用されるオブジェクトの場合
この場合、@ typedefが非常に便利です。ソースのある時点でタイプを定義し、それをタイプとして@param
、@returns
またはタイプを使用できる他のJSDocタグとして使用できます。
/**
* @typedef {Object} Person
* @property {string} name how the person is called
* @property {number} age how many years the person lived
*/
これを@param
タグで使用できます。
/**
* @param {Person} p - Description of p
*/
または@returns
:
/**
* @returns {Person} Description
*/
値がすべて同じタイプのオブジェクトの場合
/**
* @param {Object.<string, number>} dict
*/
最初のタイプ(文字列)は、JavaScriptで常に文字列であるか、少なくとも常に文字列に強制変換されるキーのタイプを文書化します。2番目のタイプ(数値)は値のタイプです。これはどのタイプでもかまいません。この構文は@returns
、同様に使用できます。
資源
ドキュメントタイプに関する有用な情報は、次の場所にあります。
https://jsdoc.app/tags-type.html
PS:
使用できるオプションの値を文書化するには[]
:
/**
* @param {number} [opt_number] this number is optional
*/
または:
/**
* @param {number|undefined} opt_number this number is optional
*/