146

@paramのJSDocwikiによると、@paramはオプションであると指定できます。

/**
    @param {String} [name]
*/
function getPerson(name) {
}

を使用してインラインでパラメータを指定できます

function getPerson(/**String*/ name) {
}

そして、私はそれらを次のように組み合わせることができます、それはうまくいきます。

/**
    @param [name]
*/
function getPerson(/**String*/name) {
}

しかし、可能であれば、すべてをインラインで実行する方法があるかどうかを知りたいと思います。

4

4 に答える 4

168

公式ドキュメントから:

オプションのパラメータ

fooという名前のオプションのパラメーター。

@param {number} [foo]
// or:
@param {number=} foo

デフォルト値が1のオプションのパラメーターfoo。

@param {number} [foo=1]
于 2015-04-04T00:39:51.753 に答える
70

掘り下げた後、これらも大丈夫だとわかりました

/**
 * @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) {}

于 2013-04-19T01:02:13.070 に答える
59

GoogleClosureCompilerの型式を使用してこれを行う方法を見つけました。次のように、タイプの後に等号を付けます。 function test(/**String=*/arg) {}

于 2011-05-15T14:58:41.913 に答える
6

関数の引数にインラインタイプのコメントを使用していて、その表記で関数の引数をオプションとしてマークする方法を知りたい場合は、オプションの引数にデフォルト値を割り当てるだけでうまくいくことがわかりました。ただし、デフォルトを明示的に設定する必要があるundefined場合は、それを明示的に設定する必要があります。そうしないと、引数はオプションとしてマークされません(すでにオプションの引数が前に付いている場合でも)。

function demo(
  /** @type {String} */ mandatory,
  /** @type {Number} */ optional1 = 0,
  /** @type {Number} optional2 = undefined,
)

demoIDEにカーソルを合わせるとoptional1、両方がoptional2表示され、オプションとして表示されるはずです。引数名の後に示されるVSCode ?(TypeScript表記)。= undefinedから削除すると、オプションであるoptional2ことがわかりますがoptional1、これはもちろん意味がないため、ここでのデフォルト値は、上記の段落で触れたように明示的である必要があります。

于 2019-07-11T11:19:51.497 に答える