@ param のJSDoc wikiによると、@ paramはオプションを使用して指定できます。
/**
@param {String} [name]
*/
function getPerson(name) {
}
パラメーターを指定できます inline を使用して
function getPerson(/**String*/ name) {
}
そして、次のようにそれらを組み合わせることができます。
/**
@param [name]
*/
function getPerson(/**String*/name) {
}
しかし、可能であればすべてをインラインで行う方法があるかどうかを知りたいです。
Google Closure Compiler type expression を使用してこれを行う方法を見つけました。次のように、タイプの後に等号を置きます:function test(/**String=*/arg) {}
公式ドキュメント から:
Fooという名前のオプションのパラメーター。
@param {number} [foo]
// or:
@param {number=} foo
デフォルト値1のオプションのパラメーターfoo。
@param {number} [foo=1]
少し掘り下げた後、これらも大丈夫だとわかりました
_/**
* @param {MyClass|undefined}
* @param {MyClass=}
* @param {String} [accessLevel="author"] The user accessLevel is optional.
* @param {String} [accessLevel] The user accessLevel is optional.
*/
_
function test(/**String=*/arg) {}
よりわずかに視覚的に魅力的
関数の引数にインラインタイプのコメントを使用していて、その表記法で関数の引数をオプションとしてマークする方法を知りたい場合、オプションの引数にデフォルト値を割り当てるだけでうまくいくことがわかりました。デフォルトをundefined
にしたい場合は、明示的に設定する必要があります。そうでない場合、引数はオプションとしてマークされません(既にオプションの引数が先行していても):
function demo(
/** @type {String} */ mandatory,
/** @type {Number} */ optional1 = 0,
/** @type {Number} optional2 = undefined,
)
IDE)でdemo
にカーソルを合わせると、optional1
とoptional2
の両方がオプションとして表示されるはずです。VSCodeでは、引数名の後の?
で示されます(TypeScript表記)。 = undefined
からoptional2
を削除すると、optional1
のみがオプションになりますが、これは無意味なので、ここでのデフォルト値は、上記の段落で言及したように明示的でなければなりません。