deno doc
Примеры
deno doc с последующим списком из одного или нескольких исходных файлов выведет документацию JSDoc для каждого экспортированного элемента модуля.
Например, если файл add.ts содержит:
/**
* Adds x and y.
* @param {number} x
* @param {number} y
* @returns {number} Sum of x and y
*/
export function add(x: number, y: number): number {
return x + y;
}
При запуске команды Deno doc комментарий JSDoc функции будет выведен в stdout:
deno doc add.ts
function add(x: number, y: number): number
Adds x and y. @param {number} x @param {number} y @returns {number} Sum of x and y
Документирование пакета npm или JSR
Начиная с Deno 2.8, deno doc принимает спецификаторы npm: и jsr: и загружает опубликованные типы пакета перед созданием документации. Это удобно для изучения API стороннего пакета из терминала без клонирования репозитория:
deno doc npm:code-block-writer
deno doc jsr:@std/path
Вы можете указать конкретную версию, как и для любого другого спецификатора Deno (npm:zod@4), а также объединить спецификатор с --html или --json, чтобы получить те же форматы вывода, что и для локальных файлов.
Линтинг
Используйте флаг --lint, чтобы проверять документацию на наличие проблем во время её создания. deno doc укажет на три вида проблем:
- Ошибка: экспортированный тип корневого модуля ссылается на неэкспортированный тип.
- Гарантирует, что потребители API имеют доступ ко всем типам, используемым API. Эту проверку можно отключить, экспортировав тип из корневого модуля (одного из файлов, указанных для
deno docв командной строке) или пометив тип тегом JSDoc@internal.
- Гарантирует, что потребители API имеют доступ ко всем типам, используемым API. Эту проверку можно отключить, экспортировав тип из корневого модуля (одного из файлов, указанных для
- Ошибка: у общедоступного типа не указан тип возвращаемого значения или свойства.
- Это позволяет
deno docотображать тип возвращаемого значения или свойства и повышает производительность проверки типов.
- Это позволяет
- Ошибка: у общедоступного типа отсутствует комментарий JS Doc.
- Гарантирует, что код документирован. Эту проверку можно отключить, добавив комментарий JSDoc или тег JSDoc
@ignore, чтобы исключить элемент из документации. Также можно добавить тег@internal, чтобы оставить элемент в документации, обозначив его как внутренний.
- Гарантирует, что код документирован. Эту проверку можно отключить, добавив комментарий JSDoc или тег JSDoc
Например:
interface Person {
name: string;
// ...
}
export function getName(person: Person) {
return person.name;
}
deno doc --lint mod.ts
Type 'getName' references type 'Person' which is not exported from a root module.
Missing JS documentation comment.
Missing return type.
at file:///mod.ts:6:1
Эти проверки линтера призваны помочь вам писать более качественную документацию и ускорить проверку типов в ваших проектах. Если обнаружены проблемы, программа завершает работу с ненулевым кодом выхода, а результаты выводятся в стандартный поток ошибок.
Поддерживаемые возможности и теги JSDoc
Deno реализует большой набор тегов JSDoc, но не следует строго стандарту JSDoc, а ориентируется на разумные стандарты и возможности, предоставляемые широко используемыми инструментами и экосистемами в этой области, такими как TSDoc и TypeDoc.
В местах со свободным текстом, например в основном описании комментария JSDoc или описании параметра, можно использовать Markdown.
Поддерживаемые теги
Поддерживаются следующие теги — некоторые из тегов, используемых и описанных в JSDoc, TSDoc и TypeDoc:
-
constructor/class: помечает функцию как конструктор. -
ignore: исключает символ из вывода. - internal: помечает символ как предназначенный только для внутреннего использования. В генераторе HTML для этого символа не будет создана запись в списке, однако он всё равно будет сгенерирован, и на него можно будет перейти, если на него ссылается символ, не являющийся внутренним.
-
public: указывает, что символ относится к публичному API. Эквивалент ключевого слова TypeScriptpublic. -
private: указывает, что символ относится к закрытому API. Эквивалент ключевого слова TypeScriptprivate. -
protected: указывает, что свойство или метод относится к защищённому API. Эквивалент ключевого слова TypeScriptprotected. -
readonly: помечает символ как доступный только для чтения, то есть его нельзя перезаписать. -
experimental: помечает символ как экспериментальный. Это означает, что API может измениться или быть удалён, а его поведение может быть определено не полностью. -
deprecated: помечает символ как устаревший. Это означает, что он больше не поддерживается и может быть удалён в будущей версии. -
module: этот тег можно указать в комментарии JSDoc верхнего уровня, чтобы комментарий относился к файлу, а не к следующему за ним символу. Можно указать значение, которое будет использоваться как идентификатор модуля (например, для экспортов по умолчанию). -
category/group: помечают символ как относящийся к определённой категории или группе. Это удобно для объединения различных символов в группы. -
see: определяет внешнюю ссылку, связанную с символом. -
example: задаёт пример для символа. В отличие от JSDoc, примеры кода нужно заключать в блоки кода из трёх обратных кавычек (в стиле Markdown), что соответствует скорее TSDoc, чем JSDoc. -
tags: задаёт дополнительные пользовательские метки для символа в виде списка, разделённого запятыми. -
since: указывает, с какого момента символ доступен. -
callback: задаёт функцию обратного вызова. -
template/typeparam/typeParam: задают параметр обобщённого типа. -
prop/property: задают свойство символа. -
typedef: задаёт тип. -
param/arg/argument: задают параметр функции. -
return/returns: задают тип возвращаемого значения функции и/или комментарий к нему. -
throws/exception: описывают ошибки, которые может выбрасывать функция при вызове. -
enum: задаёт объект как перечисление. -
extends/augments: задают тип, от которого наследуется функция. -
this: определяет, на что ссылается ключевое словоthisв функции. -
type: задаёт тип символа. -
default: задаёт значение по умолчанию для переменной, свойства или поля.
Встроенные ссылки
Встроенные ссылки позволяют задавать ссылки на другие части страницы, другие символы или модули. Помимо поддержки ссылок в стиле Markdown, поддерживаются также встроенные ссылки в стиле JSDoc.
Например, можно написать {@link https://docs.deno.com}; результатом будет 'https://docs.deno.com'. Также можно использовать {@linkcode https://docs.deno.com}, чтобы отображать текст моноширинным шрифтом; результат будет выглядеть примерно так: 'https://docs.deno.com'.
Также можно указать вместо ссылки собственную метку с помощью {@link https://docs.deno.com | Deno Docs}: текст после | будет отображаться вместо ссылки. В предыдущем примере результатом будет 'Deno Docs'.
В описаниях можно добавлять встроенные ссылки на другие символы с помощью {@link MySymbol}.
Для ссылок на модули действует тот же принцип, но используется синтаксис {@link [myModule]}. Также можно ссылаться на символы в другом модуле с помощью {@link [myModule].mysymbol}.
Вывод в формате HTML
Используйте флаг --html, чтобы создать статический сайт с документацией.
deno doc --html --name="My library" ./mod.ts
deno doc --html --name="My library" --output=./documentation/ ./mod.ts
deno doc --html --name="My library" ./sub1/mod.ts ./sub2/mod.ts
Сгенерированная документация представляет собой статический сайт с несколькими страницами, который можно разместить на любом хостинге статических сайтов.
Сгенерированный сайт включает поиск на стороне клиента, но он недоступен, если в браузере пользователя отключён JavaScript.
Вывод в формате JSON
Используйте флаг --json, чтобы вывести документацию в формате JSON. Этот формат JSON используется сайтом deno doc для создания документации модулей.
deno doc [OPTIONS] [source_file]...Показать документацию для модуля.
Вывести документацию в стандартный поток вывода:
deno doc ./path/to/module.ts
Вывести документацию в формате HTML:
deno doc --html --name="My library" ./path/to/module.ts
Проверить модуль на наличие ошибок в документации:
deno doc --lint ./path/to/module.ts
Указать целевой символ:
deno doc ./path/to/module.ts MyClass.someField
Показать документацию для встроенных средств среды выполнения:
deno doc
deno doc --filter Deno.Listener
Параметры управления зависимостями
--frozen<BOOLEAN>необязательно
Завершить работу с ошибкой, если файл блокировки не актуален.
--import-map<FILE>
Загрузить файл карты импортов из локального файла или удалённого URL-адреса.
--lock<FILE>необязательно
Проверить указанный файл блокировки. (Если значение не задано, по умолчанию используется "./deno.lock".)
--no-lockОтключить автоматический поиск файла блокировки.
--no-npmНе разрешать зависимости npm.
--no-remoteНе разрешать удалённые модули.
--reload, -r<CACHE_BLOCKLIST>необязательно
Перезагрузить кэш исходного кода (повторно скомпилировать TypeScript). Если значение не указано, перезагружается всё. Передайте список спецификаторов, разделённых запятыми, чтобы перезагрузить только соответствующие модули; npm: перезагружает все модули npm; npm:chalk перезагружает один модуль npm; jsr:@std/http/file-server,jsr:@std/assert/assert-equals перезагружает указанные модули.
Параметры
--allow-import, -I<IP_OR_HOSTNAME>необязательно
Разрешить импорт с удалённых хостов. При необходимости укажите разрешённые IP-адреса и имена хостов, включая порты. Значение по умолчанию: deno.land:443,jsr.io:443,esm.sh:443,raw.esm.sh:443,cdn.jsdelivr.net:443,raw.githubusercontent.com:443,gist.githubusercontent.com:443.
--deny-import<IP_OR_HOSTNAME>необязательно
Запретить импорт с удалённых хостов. При необходимости укажите запрещённые IP-адреса и имена хостов, включая порты.
--env-file<FILE>необязательно
Загрузить переменные окружения из локального файла. Используется только первая переменная окружения с заданным ключом. Существующие переменные окружения процесса не перезаписываются: если переменные с теми же именами уже есть в окружении, их значения сохраняются. Если в файле .env есть несколько объявлений одной и той же переменной окружения, применяется первое найденное. Это определяется порядком файлов, переданных в качестве аргументов.
Параметры документации
--category-docs<category-docs>
Путь к JSON-файлу с категориями в качестве ключей и необязательным значением в виде документации в формате Markdown.
--default-symbol-map<default-symbol-map>
Использует предоставленное сопоставление имён по умолчанию с желаемыми именами для блоков использования.
--filter<filter>
Путь к символу с компонентами, разделёнными точками.
--htmlВывести документацию в формате HTML.
--jsonВывести документацию в формате JSON.
--lintВывести результаты диагностики документации.
--name<name>
Имя, которое будет использоваться в документации (например, в навигационной цепочке).
--output<output>
Каталог для вывода документации в формате HTML.
--privateВывести документацию для закрытых элементов.
--strip-trailing-htmlУдалить завершающее .html из различных ссылок. Файлы по-прежнему будут создаваться с расширением .html.
--symbol-redirect-map<symbol-redirect-map>
Путь к JSON-файлу, содержащему файлы в качестве ключей и вложенную карту символов, сопоставленных внешним ссылкам.
Последнее обновление:
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/doc