У меня проблема с типом, которая выдает следующую ошибку. Я пытался изменить тип, но все равно он не работал.
У меня есть начальное состояние, которое имеет три различных типы.
todo.reducer принадлежит компоненту Todo, и я объявил главный редуктор для всего приложения.
Ошибка :
Тип ' {ошибка: строка; элементы: TodoList []; загрузка: логическое значение; } 'нельзя назначить типу' State '. Типы свойства 'error' несовместимы. Тип 'string' не может быть назначен типу 'Error'.
**todo.reducer.ts:**
export interface State{
items:TodoList[],
loading:boolean,
error:Error
}
const initialState:State={
items:[
new TodoList(1,'cook'),
new TodoList(2,'work')
],
loading:false,
error:undefined
}
export function TodoItem(state=initialState,action:TodoActions.TodoActions){
switch(action.type){
case TodoActions.ADD_ITEM:
return {
...state,
loading:true
}
case TodoActions.DELETE_ITEM:
return {
...state,
loading:true
}
case TodoActions.LOADING_LIST:
return{
...state,
loading:true
}
case TodoActions.LOADING_LIST_SUCCESS:
return{
...state,
loading:false
}
case TodoActions.LOADING_LIST_FAIL:
return {
...state,
loading:false
}
case TodoActions.ADD_ITEM_SUCCESS:
return{
...state,
items:[...state.items,action.payload],
loading:false
}
case TodoActions.ADD_ITEM_FAILURE:
return{
...state,
error:action.payload
}
case TodoActions.DELETE_ITEM_SUCCESS:
return{
...state,
items:state.items.filter((items)=>{
return items.id!==action.payload
}),
loading:false
}
case TodoActions.DELETE_ITEM_FAILURE:
return{
...state,
error:action.payload,
loading:false
}
default:
return state;
}
**app.reducer.ts:**
export interface AppState{
list:fromTodoReducer.State
}
export const appReducer:ActionReducerMap<AppState>={
list:fromTodoReducer.TodoItem
}