Как правильно организовать экспорт/импорт деклараций внутри проекта?

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

1. Экспорт/импорт по умолчанию:
TypeScript позволяет экспортировать и импортировать декларации по умолчанию. Это может быть функция, класс или объект, который является главным или наиболее важным элементом модуля.
Пример экспорта по умолчанию:

   export default function myFunction() {
     // ваш код
   }

Пример импорта по умолчанию:

   import myFunction from "./myModule";

2. Именованный экспорт/импорт:
TypeScript также поддерживает именованное экспортирование и импортирование деклараций. Это полезно, когда вам нужно экспортировать и импортировать несколько элементов из модуля, или когда вы хотите использовать их с разными именами в разных модулях.
Пример именованного экспорта:

   export function add(a: number, b: number): number {
     return a + b;
   }
   
   export const PI = 3.14;

Пример именованного импорта:

   import { add, PI } from "./myModule";

3. Частичный/переименованный импорт:
Иногда вам может потребоваться импортировать только несколько элементов или переименовать их при импорте.
Пример частичного импорта:

   import { add } from "./myModule";

Пример переименованного импорта:

   import { add as sum } from "./myModule";

4. Импорт из стороннего пакета:
TypeScript также поддерживает импорт деклараций из сторонних пакетов, которые вы установили с помощью пакетного менеджера, такого как npm или yarn.
Пример импорта из стороннего пакета:

   import React from "react";

В этом примере мы импортируем библиотеку React из установленного пакета react.

Важно отметить, что для правильного экспорта и импорта деклараций в TypeSсript вам необходимо настроить ваш проект на использование модулей. Для этого можно указать "module": "es6" в вашем файле tsconfig.json.

Надеюсь, что эта информация поможет вам понять, как правильно организовать экспорт и импорт деклараций внутри вашего TypeScript проекта.