Я предполагаю, что вы хотите в src/Models/index.ts
:
export * from "./User";
export * from "./Home";
Затем, если вы правильно настроили разрешение модуля, вы можете написать:
import { User, UserOptions } from "my-module/Models";
иUser
и UserOptions
будут ссылаться на класс и псевдоним типа из src/Models/User.ts
соответственно.Если src/Models/User.ts
и src/Models/Home.ts
объявляют символ с тем же именем, я полагаю, победит первый оператор export *
.
Проблема с разрешением модуля
Если импорт my-module/
даетЕсли вы заполните src
и dist
, вам потребуется импортировать полный относительный путь к файлам .js
и .d.ts
(которые должны быть рядом друг с другом).Я предполагаю, что эти файлы находятся под dist
.Если вам не нравится dist
в вашем пути импорта, у вас есть несколько вариантов, ни один из которых не подходит:
- Не используйте каталоги
src
и dist
;упорядочите все файлы, начиная с корня проекта. - Используйте модуль Bunder или загрузчик, который вы можете настроить так, чтобы
import "my-module/Models"
смотрел в папке dist
.Если ваш компоновщик или загрузчик еще не интегрируется с TypeScript, используйте параметры сопоставления путей TypeScript , чтобы поведение разрешения модуля TypeScript отражало поведение вашего компоновщика или загрузчика. - Перенаправляйте каждый путь импорта по отдельности вправильные файлы в
dist
, вручную создавая пару файлов .js
и .d.ts
, которые импортируют реальные пути, или файл package.json
с полями main
и types
, которые ссылаются на реальные пути.