使用可选的第一个参数记录JavaScript

问题描述 投票:2回答:1

我正在尝试记录其中一个烦人的函数,它们在JavaScript中有一个可选的第一个参数。

.use()的功能express

function use(path, callback) // path is optional

我试图找到有用的东西,理想情况下并不是非常丑陋。

我对实际代码签名的偏好是这样的:

function use(...args) {
  const [callback, path] = args.reverse();
}

在这种情况下,我没有两个参数,所以如果我尝试使用两个@param行,我会在JSDoc块中大喊:

/**
 * @param {String=} path
 * @param {Function} callback
 */
function use(...args) // mismatched parameters

如果我按预期使用参数并使用不同的模式来放置参数,我会被(由WebStorm)大吼大叫,因为callback不是String

/**
 * @param {String=} path
 * @param {Function} callback
 */
function use(path, callback) {
  if (typeof path == 'function') {
    callback = path; // yelled at because callback can't be a string
    path = undefined;
  }
}

我用谷歌搜索了很多旧的东西,不同的人在讨论这个问题,但没有明确的答案。由于帖子较旧且发生了很多,我想重新问:有没有办法记录这一切,所以一切都很开心(至少在WebStorm中),或者是否有一些新的ES#语法允许可选的第一个参数(可以生成适当的自动完成)?

javascript webstorm jsdoc
1个回答
1
投票
@param {(String=|Function=)} path

可能就是你要找的东西。

© www.soinside.com 2019 - 2024. All rights reserved.