Типовая циклическая зависимость с экспортом как ns - PullRequest
0 голосов
/ 08 апреля 2020

Применяя шаблон 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.

Вот почему у меня есть круговое предупреждение о зависимости.

Я запутался и не знаю, что делать. Как вы решаете такие проблемы? Было бы хорошо, если бы я мог сохранить текущую структуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...