我想为特定的元素声明类型,比如<button>
或<input>
。但是,我不能检查类型为
的特定元素希烈,
interface Props{
component: React.ComponentProps<"button"> | never;
};
const TestComponent = (props: Props) =>{
const {component} = props;
return <div>{component}</div>
}
const OnlyButtonComponent = () => {
return(
<>
{/** This will be Okay. */}
<TestComponent component={<button>its button</button>} />
{/** This must occur error */}
<TestComponent component={<div>its not button</div>} />
</>
)
}
但是,TestComponent
的渲染没有错误。
我如何用类型声明来保护这个?
试试这个
interface Props{
component: React.ReactNode
};