Я использую TypeScript с --module system
(SystemJS) в очень большом проекте. SystemJS поддерживает циклические зависимости и в большинстве случаев работает нормально. Однако, когда в дело вступает наследование TypeScript, все начинает ломаться.
Например, если class A
зависит от class B
, а class B
наследуется от class A
, то если class A
загружается первым:
- Он приостановит разрешение
class A's
и попытается загрузить зависимостьclass B
class B
будет думать, что его зависимости разрешены, так какclass A
было затронуто.- Наследование
class B's
не разрешится, потому чтоclass A
все еще не определено.
Большинство «решений», которые я могу найти в Интернете, для циклических зависимостей с загрузчиками модулей:
- Измените свой дизайн/объедините классы в один модуль
- Обходные пути для CommonJS и не для TypeScript
Я чувствую, что существуют веские основания для кругового дизайна, и объединение классов в гигантские файлы не всегда желательно, поэтому, пожалуйста, считайте, что эти обходные пути не относятся к теме вопроса, который я задаю.
Есть ли решения актуальной проблемы?