是否有用于记录可选 JavaScript 参数的正确语法,其中可选参数位于函数头的中间(想想 jQuery、Gulp 等)
我已经以标准方式记录了该功能,并且效果很好。问题是当我尝试将第二个参数设置为最后一个变量时(在未使用可选参数的情况下),我的 IDE 会感到困惑。
例子:
/**
* @param {number} a_num
* @param {string} [a_str='']
* @param {{}} a_obj
*/
function (a_num, a_str, a_obj) {
if (!a_obj) a_obj = a_str; // doesn't want me to save a string to an object.
a_str = '';
// more stuff
}
如果重要的话,我正在使用 JetBrains 的 PHPStorm,它主要使用 Google Closure 文档样式。虽然我正在寻找一种更通用的最佳实践方法。
我怀疑我可以做一些丑陋的事情,比如:
/**
* @param {number} a_num
* @param {string|{}} a_str
* @param {{}} [a_obj=null]
*/
但这并不能像我想的那样准确地描述这种情况。我希望因为这正在成为一种常见的结构,所以有一些东西可以正确处理它。