Closed as not planned
Description
Repro
{
parser: '@typescript-eslint/parser',
parserOptions: {
project: './tsconfig.json',
},
plugins: [
'@typescript-eslint',
'react-hooks',
],
extends: [
'airbnb',
'plugin:import/typescript',
'plugin:@typescript-eslint/eslint-recommended',
'plugin:@typescript-eslint/recommended',
],
// ...
}
// store.ts
import orders from 'entities/orders/reducers';
const rootReducer = combineReducers({
orders,
});
export type AppState = ReturnType<typeof rootReducer>
// entities/orders/reducers.ts
import {SetOrdersAction} from './actions';
export default createReducer(initialState, {
...
})
// entities/orders/actions.ts
import {ThunkAction} from 'redux-thunk';
import {AppState} from 'store';
export const pollOrders = (): ThunkAction<void, AppState, void, SetOrdersAction> => (
...
);
Actual Result
There is the store (imports reducers), reducers (imports actions), and actions (imports store type) in application.
import/no-cycle
rule alerts about cycle dependency, but only type information are cycled and it will be skipped at runtime