# Поддержка TypeScript в Maguyva: лучший контекст для монорепозиториев

Canonical source: https://maguyva.ai/ru/languages/typescript

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva поддерживает TypeScript с разбором AST и извлечением символов, чтобы ИИ-агенты могли прослеживать интерфейсы, реализации, общие пакеты и насыщенный JSX прикладной код в монорепозиториях.

## Сводка поддержки

- Уровень: Поддержка AST и символов
- Программирование
- Расширения: .cts, .d.ts, .mts, .spec.ts, .stories.ts, .test.ts, +ещё 1
- Настоящий AST-разбор для синтаксически осведомлённого поиска и структурного контекста.
- Именованные символы обеспечивают семантический поиск и перекрёстные ссылки. Навигация по графу доступна, когда включено извлечение связей.
- Этот язык добавляет символы и связи в поиск с учётом графа; поддерживаемые типы рёбер зависят от присущих ему конструкций.
- Доступны и AST-разбор, и извлечение символов.

## Лучше всего подходит

- Продуктовые и платформенные команды, у которых Next.js, сервисы на Node, общие пакеты и инструментарий живут в одном репозитории на TypeScript.
- Репозитории, где интерфейсы, DTO, схемы и React-компоненты меняются вместе, но живут в разных каталогах.
- Команды, стремящиеся дать ИИ-агентам безопасный контекст, прежде чем те тронут общие типы или границы пакетов.

## Сценарии работы агента

- Проследить тип, интерфейс или компонент от его определения до путей кода, которые его реально используют.
- Сравнить реализации в разных пакетах перед изменением общего хелпера или контракта API.
- Составить карту вероятного радиуса влияния при редактировании общего типа, утилиты или сервисного модуля.

## Почему страницы про TypeScript важны

TypeScript — язык, в котором многие команды наконец ждут, что ИИ-рефакторинг будет ощущаться безопасным. Система типов помогает, но не устраняет настоящую проблему: общие пакеты, DTO, сгенерированные клиенты, React-компоненты, тесты и прикладной код — всё это тянет за одни и те же имена в крупном репозитории.

Для TypeScript планка выше, чем «понимает синтаксис». Агенту нужно проследить контракт от определения через реализацию до радиуса влияния, прежде чем редактировать общий тип, хук или клиент.

## Что Maguyva реально извлекает в TypeScript

Maguyva извлекает классы, методы, интерфейсы и алиасы типов из `.ts`, `.mts`, `.cts` и распространённых вариантов файлов TypeScript вокруг тестов и историй (stories). Префиксы членов нормализуются, но идентификаторы, квалифицированные классом, сохраняются — это помогает, когда в репозитории есть и имя хелпера без квалификатора, и метод в области видимости класса с тем же конечным сегментом.

JSX трактуется как настоящий структурный сигнал, а не случайная разметка. В проиндексированных файлах TypeScript тесты, истории (stories) и конфигурация остаются доступны наряду с кодом приложения, помогая агенту проверить примеры использования и настройки перед изменением общего компонента или сервиса.

## Полезные MCP-сценарии для репозиториев TypeScript

Обычно достаточно трёх стартовых паттернов:

- Используйте `find_symbol`, когда вы уже знаете имя интерфейса, алиаса типа, хука или сервиса.
- Используйте `dependency_search` перед изменением общих типов или клиентов, которые могут разветвляться по нескольким пакетам.
- Используйте `structural_search`, когда нужна форма кода, а не совпадение по ключевому слову — например, повторяющиеся паттерны компонентов или методов.

Для концептуальных вопросов вроде «проследить путь отправки данных при оформлении заказа» `get_task_context` часто лучший первый шаг, чем сырой поиск.

## Где эта страница наиболее актуальна

Эта страница сильнее всего подходит для веб- и платформенных монорепозиториев, где TypeScript — координирующий слой для нескольких пакетов. Если в вашем репозитории всё ещё много старого JS, читайте [руководство по JavaScript](/ru/languages/javascript). Если ваш вопрос на самом деле «может ли агент удерживать вместе контекст приложения и инфраструктуры?», сочетайте эту страницу с [Terraform](/ru/languages/terraform).

## Детали движка

- TypeScript извлекает классы, методы, интерфейсы и алиасы типов, а не сводит всё к обобщённым символам.
- Префиксы членов удаляются, но идентификаторы, привязанные к классу, сохраняются, что помогает отличить `CheckoutService.create` от имени `create` без квалификатора.
- Элементы JSX считаются созданием экземпляров. В проиндексированных файлах TypeScript тесты, истории (stories) и конфигурация остаются доступны как контекст наряду с кодом приложения.

## Полезные точки входа MCP

- `find_symbol`: Начните здесь, если знаете общий интерфейс, алиас типа, хук или сервис, который хотите изучить.
- `dependency_search`: Используйте его перед изменением общего DTO или клиента, чтобы получить реалистичный радиус влияния по всем пакетам.
- `structural_search`: Используйте поиск на уровне AST, когда вам нужен паттерн, а не совпадение строки, например повторяющиеся формы компонентов или методов.
