Существуют ли правильный синтаксис для документирования дополнительных параметров JavaScript, где необязательный параметр приходит в середине заголовка функции (думает, Jquery, глоток и т.д.)документы середины функция необязательных параметры
Я документировал функционирует стандартным способом и работает отлично. Уловка, когда я пытаюсь установить второй параметр в последнюю переменную (в случае, когда необязательный параметр не использовался), моя 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
}
Если это имеет значение, я использую PhpStorm от JetBrains, который использует стиль Закрытие Google КОХ (в основном). Хотя я ищу более общий подход, основанный на передовой практике.
Я подозреваю, что я мог бы сделать что-то уродливое, как:
/**
* @param {number} a_num
* @param {string|{}} a_str
* @param {{}} [a_obj=null]
*/
Но что на самом деле не описать ситуацию настолько точно, как хотелось бы. Я надеюсь, так как это становится общей структурой, что есть что-то, чтобы справиться с этим должным образом.
У меня есть два голоса и одна попытка закрыть за то, что неясно. Я понимаю, что необязательные параметры в середине заголовка функции табу (или совершенно невозможно) на большинстве языков, но в JavaScript это действительный и часто используемый шаблон, поэтому я считаю, что это правильный вопрос.Что касается неясности, если кто-то может оставить комментарий, дающий мне понять, что неясно, я был бы рад обновить вопрос. Благодарю. – samanime
Есть много вещей, которые вы можете сделать в javascript, но только потому, что язык позволяет это не значит, что это хорошая практика. Например, javascript разрешает глобальные переменные, где не так много языков, это не означает, что рекомендуется использовать множество глобальных переменных в JS. – bhspencer
Я удалил свой ответ, так как он действительно не отвечает на ваш вопрос, но я добавляю его здесь как комментарий, поскольку я думаю, что это все еще важная часть разговора: я считаю, что плохая практика заключается в том, чтобы поставить необязательные параметры в середине список параметров. Это может увеличить путаницу пользователей вашего API. Вместо этого рассмотрите возможность поместить необязательный параметр в конце params или передать объект опций, а не список параметров. – bhspencer