如何描述tippy接受打字稿将正确使用的任何孩子的包装器?
import Tippy, { TippyProps } from '@tippy.js/react'
import React from 'react'
import 'tippy.js/dist/tippy.css'
Tippy.defaultProps = {
maxWidth: '500px',
}
export const Tooltip: Tooltip = ({ children, content, ...rest }) => {
if (!children) return null
if (!content) return children
return (
<Tippy content={content} {...rest}>
{children}
</Tippy>
)
}
interface Tooltip {
(props: MyProps): React.ForwardRefExoticComponent<TippyProps> | null | React.ReactNode
}
interface MyProps {
content?: string | React.ReactNode
children?: React.ReactNode
}
像这样使用:
<Tooltip content='Text'>
<div>123</div>
</Tooltip>
打字稿在返回语句中给了我孩子的错误:
键入'字符串 | 号码 | 真实 | {} | ReactElement ReactElement 组件)> | 空) | (新(道具:任何)=> 组件)> | 反应节点数组 | ReactPortal' 不可分配给类型 'ReactElement ReactElement 组件)> | 空) | (新(道具:任何)=> 组件)>'。类型 'string' 不可分配给类型 'ReactElement ReactElement 组件)> | 空) | (new (props: any) => Component)>'.ts(2322) index.d.ts(6, 3): 预期的类型来自属性 'children',它在类型 'IntrinsicAttributes & TippyProps' 上声明