[英]How to define interfaces in TypeScript to pass the props correctly?
我有一个呈现徽标文本的简单组件
interface AppBarLogoProps = {
logo: string;
};
export const AppBarLogo: FC<AppBarLogoProps> = ({ logo }) => {
return (
<>
<h1>
{logo}
</h1>
</>
);
};
和比下面更复杂的 AppBarTop 组件,但我的想法是我想将 logo 道具从 AppBarTop 传递给 AppBarLogo。
问题是我必须使用 logo.logo 表示法。 我应该如何定义接口以使用return <AppBarLogo logo={logo} />
而不是return <AppBarLogo logo={logo.logo} />
?
interface AppBarTopProps {
logo: AppBarLogoProps;
}
export const AppBarTop: FC<AppBarTopProps> = ({ logo }) => {
return <AppBarLogo logo={logo.logo} />
}
您可以使用 TypeScript 交点&
:
interface AppBarLogoProps {
logo: string;
};
interface AppBarTopProps {
foo: string
}
export const AppBarTop: React.FC<AppBarTopProps & AppBarLogoProps> = ({ logo, foo }) => {
return <AppBarLogo logo={logo} />
}
此外,您可能不应该使用FC
,而只需使用 function:
export const AppBarTop2 = ({ logo, foo }: AppBarTopProps & AppBarLogoProps) => {
return <AppBarLogo logo={logo} />
}
像这样?
interface AppBarTopProps extends AppBarLogoProps {
// other properties
}
export const AppBarTop: FC<AppBarTopProps> = (props) => {
return <AppBarLogo {...props} />
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.