TypeDoc — это генератор документации для проектов на языке TypeScript, который автоматически создает документацию на основе специально оформленных комментариев в исходном коде. Программа считывает экспортируемые сущности (классы, интерфейсы, функции, перечисления и т. д.), извлекает описания из комментариев (с поддержкой тегов вроде @param, @returns и других) и генерирует структурированный результат в виде HTML-сайта или модели в формате JSON. TypeDoc работает с конфигурацией TypeScript и может использовать файлы конфигурации tsconfig.json, typedoc.json и другие источники настроек.
Проект поддерживается сообществом, распространяется как Open Source и лицензируется под лицензией Apache-2.0. Требуется наличие Node.js; TypeDoc совместим с актуальными LTS-версиями Node.js и TypeScript. Инструмент предоставляет множество опций командной строки и API для гибкой настройки: можно указать темы оформления, обработку приватных/защищённых членов, стратегию точек входа, формат вывода и др. Также существует система плагинов, расширяющих возможности анализа комментариев, вывода и оформления.
TypeDoc широко используется как средство документирования библиотек и крупных приложений, где важно поддерживать документацию в актуальном состоянии с кодом. Пользователи добавляют комментарии непосредственно перед объявлениями сущностей, и TypeDoc автоматически включает в документацию типы, сигнатуры, структуры модулей и связи между сущностями, минимизируя необходимость дублировать информацию уже заданную в типах.
- Автоматическое извлечение сущностей и типов — TypeDoc анализирует исходный код и TypeScript типы, выявляет экспортируемые классы, интерфейсы, функции, перечисления и др.
- Поддержка комментариев с тегами — комментарии в стиле TSDoc/JSDoc, включая теги @param, @returns, @type параметров, описания generic-параметров и др.
- Markdown внутри комментариев — поддержка форматирования, выделения кода, списков, заголовков и других элементов Markdown в описаниях.
- Настраиваемость тем оформления — возможность выбрать тему для генерации HTML документации, поддержка кастомных стилей и внешнего оформления.
- Опции фильтрации элементов — можно исключать приватные, защищённые члены, члены, не имеющие документации, или внешние модули и символы.
- Конфигурация через файл и CLI — настройка через tsconfig.json, typedoc.json, через командную строку; поддержка указания точек входа, стратегий обработки директорий и модулей.
- API-интерфейс и плагины — возможность программного использования TypeDoc, а также расширения через плагины для поддержки дополнительных тегов, форматов вывода и обработки комментариев.
- Вывод в разные форматы — основной формат HTML, также JSON-модель проекта, поддержка пользовательских тем и шаблонов.