Intellij / WebStorm で補完が効く JsDoc の書き方 (随時更新)


引数/戻り値

/**
 * @param {string} aaa
 * @param {number} bbb
 * @param {object} obj
 * @param {int} obj.xxx
 * @param {string[]} obj.yyy
 * @return {int}
 */

引数が省略可能

/**
 * @param {number} [aaa] 省略可能
 * @param {object} obj
 * @param {int} [obj.xxx]
 */

引数がnullable

/**
 * @param {?number} aaa - nullかnumber型
 */

引数が可変

/**
 * @param {...number} aaa
 */

戻り値にPromise/async関数

/**
 * @return {Promise<number>}
 */

戻り値に構造体的なオブジェクト

/**
 * @return {{aaa: int, bbb: boolean}}
 */

戻り値に動的なオブジェクト(キー: string / 値: 数値)

/**
 * @return {Object.<string, number>}
 */

引数にコールバック関数

aaa => parseInt(aaa) みたいなものを受けとる場合

/**
 * @callback Callback_Name
 * @param {string} aaa
 * @return {int}
 */

/**
 * @param {Callback_Name} xxx
 */