Я использую реагирующий хук useReducer с машинописным шрифтом, и я не могу сделать его безопасным, потому что всякий раз, когда я пытаюсь назначить тип действия с полезной нагрузкой, он возвращает ошибку.
interface State {
checkedEvents: string[];
seriesIndex: number;
listHeight: number;
chart: Chart | undefined;
}
interface ComponentActions {
type: 'setInitialOptions' | 'setCheckedEvents';
payload: State | { checkedEvents: string[] };
}
function reducer(state: State, action: ComponentActions): State {
const { type, payload } = action;
switch (type) {
case 'setInitialOptions':
return {
chart: payload.chart,
checkedEvents: payload.checkedEvents,
seriesIndex: payload.seriesIndex,
listHeight: payload.listHeight
};
case 'setCheckedEvents':
return { ...state, checkedEvents: payload.checkedEvents };
default:
throw new Error();
}
Вот как выглядит ошибка типакак: ![enter image description here](https://i.stack.imgur.com/fFDK0.png)
Есть идеи, почему это происходит и как сделать тип полезной нагрузки безопасным?