Я использую машинопись, и до сих пор я использовал тип любой , чтобы определить тип моего комбинированного редуктора.Сегодня я решил добавить тип для моего комбинированного редуктора, но VSCode показывает разные ошибки.
Вот как я определил мой редуктор:
type TState = {
[CombinedReducerKeys.FilterMenuReducer]: fromFilterMenuReducer.TReducer;
[CombinedReducerKeys.RequestBulletinReducer]: fromRequestBulletinReducer.TReducer;
[CombinedReducerKeys.DashboardReducer]: fromDashboardReducer.TState;
[CombinedReducerKeys.IssueBoardReducer]: fromIssueBoardReducer.TState;
[CombinedReducerKeys.CreateIssueReducer]: fromCreateIssueReducer.TState;
};
const combinedReducersObj: TState = {
[CombinedReducerKeys.FilterMenuReducer]: FilterMenuReducer,
[CombinedReducerKeys.RequestBulletinReducer]: RequestBulletinReducer,
[CombinedReducerKeys.DashboardReducer]: DashboardReducer,
[CombinedReducerKeys.IssueBoardReducer]: IssueBoardReducer,
[CombinedReducerKeys.CreateIssueReducer]: CreateIssueReducer,
};
const combinedReducer = combineReducers(combinedReducersObj);
export const getIssue = (state: any) =>
fromCreateIssueReducer.getIssue(state[CombinedReducerKeys.CreateIssueReducer]);
export default combinedReducer;
CombinedReducerKeys Перечень ключей для редуктора
из import* как из из ;
Как вы видите, я только что экспортировал свой TState.И это была ошибка, которую VSCode показывал тогда:
Затем я создал комбинированный тип из TState и TAction как:
export type TReducer = TState & TAction;
Но это ошибка, которую теперь выдает VSCode:
Это типы, которые я определил для FilterMenuReducer:
export type TReducer = TAction & TState;
type TAction = {
type: FilterMenuTypes;
sortByType?: SortByTypes;
newPriority?: PriorityTypes;
newStatus?: string;
newType?: RequestTypes;
timestamp?: number;
author?: string;
};
export type TState = {
sortBy: SortByTypes;
priority: PriorityTypes[];
status: StatusTypes;
type: RequestTypes[];
createdOnBegin: number;
createdOnEnd: number;
dueOnBegin: number;
dueOnEnd: number;
authorFilterKey: string;
selectedAuthors: string[];
loadedAuthors: TAuthor[];
};
Может кто-нибудь подсказать мне, как правильно определить тип для моего состояния комбинированного редуктора?