Документация по полиморфным функциям в Google Apps Script

Я хочу, чтобы моя библиотечная функция работала двумя способами, в зависимости от того, был ли предоставлен второй параметр.
Например:

function sheet_to_dict(a, b) {
  var array = (
    b ? SpreadsheetApp.openById(a).getSheetByName(b) : a
  ).getDataRange().getValues();

Теперь, как я должен документировать это, чтобы это выглядело так:

Эта статья не охватывает эту проблему: http://googleappsdeveloper.blogspot.de/2012/05/introducing-versions-and-libraries-in.html

1 ответ

У вас есть ограниченное подмножество тегов jsdoc для работы в Apps-скрипте, и это один из примеров, где нет способа дублировать результаты, которые вы видите в документации по сервисам. Вот список зарегистрированных проблем с поддержкой jsdoc в apps-script.

Единственное, что вы сможете сделать в приложении-скрипте, это предоставить подробную документацию о необязательных параметрах в ваших комментариях. К сожалению, это не поможет с автозаполнением.

Вот пример, основанный на том, Как просмотреть комментарии jsdoc в сценариях Google Doc, которые используют таблицы html для имитации вывода @param теги и документирует два варианта метода. Снимок экрана взят из URL документации библиотеки, https://script.google.com/macros/library/d/<Library-Id>/<ver>,

введите описание изображения здесь

/**
 * Does incredible things, in a number of amazing ways.
 *
 * <pre>
 * jsdocTest( var1, var2 )
 * </pre>
 * Description of the first variant.
 * <table><tbody>
 * <tr><td style="width: 20%"><b>Parameter</b></td><td style="width: 15%"><b>Type</b></td><td style="width: 65%"><b>Description</b></td></tr>
 * <tr><td> var1 </td><td> number </td><td> Description of Number Parameter </td></tr>
 * <tr><td> var2 </td><td> string </td><td> Description of String Parameter </td></tr>
 * </tbody></table>
 *
 * <pre>
 * jsdocTest( var3, var4 )
 * </pre>
 * Description of the second variant.
 * <table><tbody>
 * <tr><td style="width: 20%"><b>Parameter</b></td><td style="width: 15%"><b>Type</b></td><td style="width: 65%"><b>Description</b></td></tr>
 * <tr><td> var3 </td><td> Object </td><td> Description of Object parameter </td></tr>
 * <tr><td> var4 </td><td> String [] </td><td> Description of String Array </td></tr>
 * </tbody></table>
 */
function jsdocTest () {
  // Handle all parameters via arguments[]
}
Другие вопросы по тегам