Программирование HTML JSDoc: обзор функционала документирования JavaScript-функций Sat, July 25 2026  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


JSDoc: обзор функционала документирования JavaScript-функций Печать
Добавил(а) microsin   

JSDoc это стандартный язык разметки для документирования JavaScript-кода прямо в комментариях. Он не только помогает создавать понятную документацию, но и значительно улучшает процесс разработки, обеспечивая автодополнение и подсказки в редакторах кода.

[Основы синтаксиса JSDoc]

Документирование строится на специальных комментариях, которые начинаются с `/**` и закрываются `*/`. Такой комментарий помещается непосредственно перед объявляемой функцией, классом или переменной.

Базовая структура для функции. Самый простой пример включает описание, тег `@param` для параметра и тег `@returns` (или `@return`) для возвращаемого значения.

/**
* Складывает единицу с переданным числом.
* @param {number} input Любое число.
* @returns {number} Входное число, увеличенное на единицу.
*/
function addOne(input) {
return input + 1; }

Разберем элементы:

`@param {number} input any number` — тег, указывающий на параметр. В фигурных скобках задается тип (`number`), после них — имя параметра (`input`) и его описание.

`@returns {number} that number, plus one.` — тег, описывающий возвращаемое значение. Также указывается тип и описание.

[Ключевые теги JSDoc]

Вот основные теги, которые чаще всего используются при документировании функций:

Тег Назначение Пример
`@param` Описывает параметр функции. Можно указать тип, имя и описание. Для необязательных параметров используется синтаксис с квадратными скобками `[param]` или `[param=значение]` для значения по умолчанию. `@param {string} [name="Гость"] Имя пользователя.`
`@returns` или `@return` Описывает возвращаемое значение. `@returns {boolean} Результат проверки.`
`@example` Показывает пример использования функции. Этот блок будет красиво отформатирован в сгенерированной документации. `@example const result = addOne(5); // 6`
`@private` Помечает функцию как приватную. Она не будет включена в публичную документацию. `@private`
`@deprecated` Указывает, что функция устарела и её не рекомендуется использовать. `@deprecated`
`@overload` Используется для документирования функций с несколькими возможными сигнатурами (перегрузками), когда набор параметров зависит друг от друга. См. пример ниже.

Пример с необязательным параметром:

/**
* Приветствует пользователя.
* @param {string} [name="Stranger"] Имя пользователя.
* @returns {string} Приветствие.
*/
function sayHello(name) {
name = name || "Stranger";
return `Hello, ${name}!`; }

Пример с перегрузкой (`@overload`):

/**
* @overload
* @param {string} name Имя свойства для получения.
* @returns {string} Значение свойства. */

/**
* @overload
* @param {number} index Индекс элемента.
* @returns {object} Объект элемента.
*/
function get(arg) {
// Реализация функции... }

Такой подход позволяет редактору кода предлагать корректные подсказки в зависимости от типа переданного аргумента.

[Расширенные возможности и интеграция]

Типы данных. JSDoc поддерживает не только примитивные типы (`string`, `number`). Вы можете описывать сложные структуры:

Объединенные типы (Union Types): используйте `|` для указания, что параметр может быть одного из нескольких типов: `{number|string}` или `{number|number[][]}` для двумерного массива чисел.

Объекты (Object): можно описать структуру объекта как в виде `{ { a: string, b: number } }`, так и с помощью тега `@typedef` для создания пользовательских типов.

/**
* @typedef {Object} User
* @property {string} name Имя пользователя.
* @property {number} age Возраст пользователя.
*/

/**
* @param {User} user Объект пользователя.
*/
function printUser(user) { /* ... */ }

[Инструменты и среда разработки]

Генерация документации: утилиты вроде documentation.js могут прочитать ваши JSDoc-комментарии и создать из них готовый HTML-сайт или Markdown-файл с документацией.

Редакторы кода: современные IDE (IntelliJ IDEA, VS Code) автоматически распознают JSDoc. При вводе `/**` и нажатии Enter они генерируют заготовку со всеми тегами, а при вызове функции показывают всплывающие подсказки с вашими комментариями .

TypeScript: вы можете использовать синтаксис TypeScript для указания типов прямо внутри JSDoc-комментариев (`@type`, `@typedef`, `@template`). Это позволяет добавлять строгую типизацию в обычные JavaScript-файлы.

[Важный нюанс для Google Apps Script]

Если вы пишете пользовательские функции для Google Sheets, помните о следующих особенностях:

● Для появления функции в списке формул обязательно используйте тег `@customfunction`.
● Описание из тега `@return` не отображается в всплывающей подсказке Google Sheets.
● Синтаксис для необязательных параметров (`[param]`) и значений по умолчанию (`[param=value]`) не поддерживается в пользовательском интерфейсе Google Sheets — все параметры будут отображаться как обязательные.

 

 

Добавить комментарий


Защитный код
Обновить

Top of Page