есть тип MobileMegaMenuItem
есть тип LinkItem
я прописал кастомный хук
export const useOpenMenuByHash = (
data: any,
action: (data: MobileMegaMenuItem | LinkItem) => void,
actionRoom: () => void
) => {
useEffect(() => {
if (data && data.length > 0) {
const hashName = window.location.hash.substring(1);
if (hashName) {
const found = data.find((el: MobileMegaMenuItem | LinkItem) => {
const elField = 'href' in el ? el.href : el.link;
return elField?.includes(hashName) && el.id !== 0;
});
found && action(found);
found && actionRoom && actionRoom();
}
}
}, [data]);
};
применю его
useOpenMenuByHash(data, onClick);
выходит ошибка на onClick
Argument of type '(item: LinkItem) => void' is not assignable to parameter of type '(el: LinkItem | MobileMegaMenuItem) => void'. Types of parameters 'item' and 'el' are incompatible. Type 'LinkItem | MobileMegaMenuItem' is not assignable to type 'LinkItem'. Property 'test' is missing in type 'MobileMegaMenuItem' but required in type 'LinkItem'.
Почему в MobileMegaMenuItem нужно прописывать свойства (поля) LinkItem ? я же как раз таки хочу задать либо тип MobileMegaMenuItem со своей структурой либо тип LinkItem со своей структурой