Я использую TypeScript с --module system
(SystemJS) в очень большом проекте. SystemJS поддерживает циклические зависимости, и большую часть времени он отлично работает. Тем не менее, когда наследование типа TypeScript задействовано, все начинает ломаться.Наследование типов TypeScript и круговые зависимости в SystemJS
Например, если 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
Я чувствую, что существуют обоснованные обоснования для круговых проектов, и объединение классов в гигантские файлы не всегда желательно, поэтому, пожалуйста, рассмотрите эти обходные пути на b я не говорю о вопросе, который я задаю.
Есть ли какие-либо решения реальной проблемы?