Fix several cyclical type imports #691
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WHY are these changes introduced?
Move us closer to enabling the
import/no-cycle
rule by fixing several violations.We can't turn it on just yet, as there's still a few more violations, but I want to chat with @danrosenthal about the best fix for those first.
WHAT is this pull request doing?
Creates per-component types.ts files to contain types in cases that result in cyclical dependencies.
E.g. Consider the following:
In this case
Component
importsutilities
andutilities
importsComponent
- A cyclical dependency. To fix this, introduce a new file that contains the type, and haveComponent
andutilities
import from that file:Now,
utilities
depends ontypes
, andComponent
depends onutilities
andtypes
. The cycle is removed.How to 🎩
yarn run sk type-check
to prove typescript is happy"import/no-cycle": "off",
line and see that the number of warnings is reduced compared to master (should be 26 on master to148 on this branch)