我有一个道具页脚,它是ReactNode的一种或我的自定义类型
我写了一个函数来获取它是否是一个ReactNode
const isReactNode = (value: any): value is React.ReactNode => {
return (
React.isValidElement(value) ||
typeof value === 'string' ||
typeof value === 'number' ||
typeof value === 'boolean' ||
JSON.stringify(value) === '{}' ||
value === undefined ||
value === null
)
}
interface CadrFooterProps {
key1?: string
}
const CardFooter = (pros: { footer: CadrFooterProps }) => {
return xxxx
}
function Card(props:{footer: CadrFooterProps | React.ReactNode}) {
const { footer } = props
const footerDom = isReactNode(footer) ? footer:<CardFooter footer={footer}/>
return (
<div>
...
{footerDom}
</div>
)
}
我不知道这是否是最佳做法,请帮我复习