Как построить библиотеки с двухсторонними одноранговыми зависимостями в машинописи?
У меня есть две библиотеки, одна, которая делает запросы, а другая, которая ведет журнал. Обе библиотеки требуют настройки от клиента, который всегда будет использовать обе из них.
Библиотека запросов выполняет обращения к библиотеке журналов повсюду, и в ней она указана как одноранговая зависимость.
Библиотека журналов имеет одну функцию, которая вызывает метод в библиотеке запросов для вывода журналов. Этот метод свободен от вызовов журнала, чтобы избежать бесконечных циклов. В библиотеке журналов также есть библиотека запросов, указанная в качестве одноранговой зависимости.
Когда я пытаюсь бежать tsc
в библиотеке запросов он жалуется, что не может импортировать сам. Когда он импортирует библиотеку журналов, библиотека журналов пытается импортировать библиотеку запросов, которую невозможно найти. Очевидно, я не хочу публиковать каждую версию библиотеки запросов с предыдущей версией, вложенной в нее, поэтому установка старой версии не будет работать.
Я попытался динамически загрузить библиотеку запросов в библиотеке журналов с помощью машинописи await import()
, но, видимо, все еще пытается открыть библиотеку запросов, вызывающую ошибку.
Каков наилучший способ реализации двусторонних библиотечных отношений?
1 ответ
двусторонние равноправные зависимости в машинописи?
Вы не Не в JavaScript, не в TypeScript. Круговые зависимости не хороши.
исправлять
Изолировать круглость в третьей библиотеке.
До:
A -> <- B
После:
A -> Common
B -> Common
Если вы не можете думать о Common
, тогда A & B
действительно должно быть 1 (вместо 2)