我正在定义三件事:
export interface MenuItemLink {
to: string;
label: string;
}
type MenuItem = JSX.Element | MenuItemLink;
export interface NavBarProps {
menuItems: MenuItem[];
}
当我try 在 map 中使用它时
const items = menuItems.map((item, index) => {
if (item?.to) {
return (
<Link to={item.to} key={index}>
<span>{item.label}</span>
</Link>
);
} else {
return item;
}
});
它在item.to上给了我一个打字错误:
Property 'to' does not exist on type 'MenuItem'.
Property 'to' does not exist on type 'Element'.ts(2339)
但它是MenuItemLink上的一个可用属性,这是MenuItem的可能类型之一,那么它为什么抛出这个错误呢?