Применяя шаблон Redux в своем проекте, я решил сгруппировать свои действия.
До:
export const a = ...;
export const b = ...;
После:
export namespace TestActions {
export const a = ...;
export const b = ...;
}
Не знаю если пространства имен являются лучшим решением для этого, но я знал, что TypeScript 3.8 представит функцию export as ns
.
У меня также есть класс эффектов, который я экспортирую с действиями из index.ts
:
export * from './actions';
export * from './effects';
И это не было причиной каких-либо предупреждений о круговой зависимости, так как я мог просто импортировать свои действия в эффекты напрямую (без index.ts):
import { TestActions } from '@store/test/actions';
Конечно, в других местах я импортировал их по назначению :
import { TestActions } from '@store/test';
Но теперь выпущен TypeScript 3.8, и я хочу использовать функцию export as ns
, о которой я упоминал ранее. Итак, мой файл действий теперь выглядит так:
export const a = ...;
export const b = ...;
и index.ts
вот так:
export * as TestActions from './actions';
export * from './effects';
Но теперь я не могу изменить импорт с @store/test
на @store/test/actions
, так как последний, конечно, не содержит TestActions
.
Вот почему у меня есть круговое предупреждение о зависимости.
Я запутался и не знаю, что делать. Как вы решаете такие проблемы? Было бы хорошо, если бы я мог сохранить текущую структуру.