Я только что преобразовал библиотеку JavaScript в машинописный текст.Моя проблема в том, что я не знаю, как это организовать.Это библиотека, включающая компоненты, каждый из которых использует разные классы, типы, классы ошибок и т. Д. Некоторые компоненты зависят от других компонентов.
Мой первоначальный подход состоял в том, чтобы экспортировать все на корневом уровне.
export * from "./component1";
export * from "./component2";
export * from "./component3";
Так что я могу использовать это так:
import { MyClassFromComponent1, MyTypeFromComponent2 } from "mylib"
Это нормально для использования, ноэто все в одном месте и с IDE и автозаполнением, это немного грязно.
Мой второй подход состоял в том, чтобы импортировать все компоненты и экспортировать каждый из них как константу в корневой индекс. Ts
import * as _component1 from "./component1";
import * as _component2 from "./component2";
import * as _component3 from "./component3";
export const component1 = _component1;
export const component2 = _component2;
export const component3 = _component3;
И я смог использовать его так:
import component1 from "mylib"
const { MyClass1 } = component1;
Но, таким образом, я не могу импортировать типы машинописи и не могу выполнить деструктуризацию импорта, как (конечно, она не поддерживается с именованным импортом)
import { component1: { MyClassComponent1 } } from "mylib"
Есть ли рекомендуемый способ справиться с таким делом?А как насчет пространств имен (я должен сказать, что это все еще сбивает меня с толку).