Я использую react-redux + typescript.
Вот простейший редсюер, который я использую:
type msgObjType = {
name: string
email: string
msg: string
}
type msgObjActionType = {
type: string
payload: msgObjType
}
const msgReducer = function msgReducer(state = { msgs: [] as Array<msgObjType> }, action: msgObjActionType) {
switch(action.type) {
case 'ADD_MSG': {
state = {
...state,
msgs: [ ...state.msgs, action.payload ]
};
break;
}
default:
return state;
}
return state;
}
export const addMsgAC = (msgObj: msgObjType) => {
return { type: 'ADD_MSG', payload: msgObj }
}
export default msgReducer;
Он срабатывает без проблем. Проблемы начинаются когда я убираю типизацию:
as Array<msgObjType>
В этом случае выводится такое сообщение об ошибке:
Type 'msgObjType[]' is not assignable to type 'never[]'.
Type 'msgObjType' is not assignable to type 'never'. TS2322
В чём смысл ошибки? Почему в данном случае наличие типизации критично?