Решил попробовать использовать TS для разработки на React и столкнулся с весьма не понятной мне проблемой.
Хочу пробросить в аргументы action-creator'а модального окна код JSX (чтобы в дальнейшем передавать туда разные view по необходимости), но TS почему то ругается и ведет себя не адекватно.
Аргументирует он это вот этим:
[ts] Тип "boolean" не может быть назначен для типа "Element". [2322]
modal.ts(63, 5): The expected type comes from property 'message' which is declared here on type 'IModalOptions'
Вот код откуда я вызываю action-creatorexport const logout = () => {
return (dispatch: Dispatch<any>) => {
dispatch({
type: AUTH_LOGOUT
});
dispatch(modalOpen({
message: <div>TEST</div>
}));
}
}
Вот сам action-creatorinterface IModalOptions{
message: JSX.Element;
isCanClose?: boolean
}
export const modalOpen = ({message, isCanClose = true} : IModalOptions) => {
return (dispatch: Dispatch<any>) => {
dispatch({
type: MODAL_OPEN,
message,
isCanClose
});
}
}
Пробовал ставить тип any, но это не возымело эффекта.
[ts] Не удается найти имя "div". [2304]
Подскажите пожалуйста как с этим бороться, может быть для этого какой то отдельный тип или надо как-то оборачивать? А возможно это в целом фундаментально не правильная идея кидать JSX в аргументы? На обычном React такая реализация вполне себе работала.