JSDoc:箭头函数参数

13

我正在尝试使用JSDoc(EcmaScript 2015,WebStorm 12 Build 144.3357.8)对我的代码进行文档化。

我有一个箭头函数,想要记录它的参数。以下两个示例可以正常工作(我得到了自动补全):

/** @param {Number} num1*/
var a = num1 => num1 * num1;
//------------------------------
/** @param {Number} num1*/
var a = num1 => {
    return num1 * num1;
};

但是当我想要记录forEach函数中的箭头函数时,例如下面所有情况,自动补全功能都无法工作:

/** @param {Number} num1*/
[].forEach(num1 => {
    return num1 * num1;
});
//------------------------------
/** @param {Number} num1*/
[].forEach(num1 => num1 * num1);
//------------------------------
[].forEach(/** @param {Number} num1*/num1 => num1 * num1);
//------------------------------
[].forEach(/** @param {Number} num1*/num1 => {
    return num1 * num1;
});

有人成功使这个工作了吗?

2个回答

14

从下一个EAP版本开始,WebStorm将理解以下内容:

[].forEach(/**Number*/num1 => {
    return num1 * num1;
});
请查看WEB-19280了解详情。

3
当我正在寻找vscode解决方案时,遇到了这个问题,下面是在vscode中实现的方法:[].forEach(/** @param {Number} num1*/ num1 => { .... } - Samiullah Khan
对于 VSC,你可以将数组转换为你想要在匿名函数中获得自动补全的类型:(/**@type {Array<number>}*/([])).forEach(num1 => num1 * num1) - undefined

5

您可以使用这个格式:

/**
 * @param {(prevState: ActionState) => ActionState} setActionState
 */
function f(setActionState) {
  // ...
}

或者:

/**
 * @param {function(prevState: ActionState): ActionState} setActionState
 */
function f(setActionState) {
  // ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接