TypeScript Academy · Урок

Повторные экспорты и файлы-агрегаторы

Создавайте индексные файлы, чтобы упростить пути импорта

Урок 2 из 413 шагов

«Повторные экспорты и файлы-агрегаторы» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.

Добро пожаловать

Агрегирующие файлы (index.ts) объединяют и повторно экспортируют содержимое модулей, создавая простой общедоступный API для каталога и более удобные пути импорта.

Что такое агрегирующий файл

Агрегирующий файл — это index.ts, который повторно экспортирует всё содержимое того же каталога. Вызывающий код импортирует элементы из каталога, а не из отдельных файлов.
// src/models/index.ts (barrel)
export { User } from './user';
export { Product } from './product';
export { Order } from './order';

Использование агрегирующего файла

Импортируйте элементы из агрегирующего файла вместо отдельных файлов, чтобы сделать пути короче и понятнее.
// Before barrel:
import { User } from '../models/user';
import { Product } from '../models/product';

// After barrel:
import { User, Product } from '../models';

Переэкспорт по шаблону export *

Повторно экспортируйте все именованные экспорты модуля с помощью `export *`.
// index.ts
export * from './utils';
export * from './helpers';
export * from './validators';

Переименование при переэкспорте

Экспорты можно переименовывать при их повторном экспорте.
export { default as MyButton } from './Button';
export { Button as Btn } from './Button';

Переэкспорты только типов

Повторно экспортируйте типы без влияния на код, выполняемый во время работы.
export type { User, UserRole } from './user.types';

Агрегирующий файл для функционального модуля

В больших приложениях каталоги функций часто содержат агрегирующий файл, который предоставляет только общедоступную часть API.
// features/auth/index.ts
export { AuthProvider } from './AuthProvider';
export { useAuth } from './useAuth';
export type { AuthUser } from './types';

Риск циклических зависимостей

Агрегирующие файлы могут создавать циклические зависимости, если файлы из одного агрегирующего файла косвенно импортируют друг друга через index. Учитывайте этот риск.

Удаление неиспользуемого кода и агрегирующие файлы

Современные сборщики (Webpack, Rollup, Vite) удаляют неиспользуемые переэкспорты из агрегирующих файлов. В пакет включаются только фактически используемые экспорты.

Глубокие и поверхностные агрегирующие файлы

Вложите агрегирующие файлы: у каждого подкаталога будет собственный index.ts, а агрегирующий файл родительского каталога будет повторно экспортировать содержимое агрегирующих файлов подкаталогов.
// src/index.ts
export * from './models';
export * from './services';
export * from './utils';

Агрегирующие файлы и производительность TypeScript

Глубоко вложенные агрегирующие файлы могут замедлять компиляцию TypeScript. В больших проектах рассмотрите упрощение структуры или использование псевдонимов путей.

Быстрая проверка

Какое главное преимущество даёт использование агрегирующего файла (index.ts)?

Итоги

Агрегирующие файлы (index.ts) повторно экспортируют содержимое каталога, создавая понятные пути импорта. Используйте `export *` для массового переэкспорта, `export type` — только для типов, и учитывайте риск циклических зависимостей в больших проектах.
Можно начать бесплатно

Изучай TypeScript с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
101
Уроки
352

Часто задаваемые вопросы

Урок «Повторные экспорты и файлы-агрегаторы» бесплатный?

Да — полный текст урока «Повторные экспорты и файлы-агрегаторы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.

Чему я научусь в уроке «Повторные экспорты и файлы-агрегаторы»?

Создавайте индексные файлы, чтобы упростить пути импорта Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать TypeScript Academy?

Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Повторные экспорты и файлы-агрегаторы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке TypeScript Academy?

Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Синтаксис модулей ES: import и export
  2. Повторные экспорты и файлы-агрегаторы
  3. Импорты и экспорты только типов
  4. Пространства имён и модули: современное применение
← Назад к TypeScript Academy