Javascript 为Typescript组件中的renderAs属性设置的正确类型?
组件有时需要能够呈现为不同的HTML元素,具体取决于其上下文。例如,此Javascript 为Typescript组件中的renderAs属性设置的正确类型?,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,组件有时需要能够呈现为不同的HTML元素,具体取决于其上下文。例如,此卡组件 从“React”导入React; 导出类型道具={ 类名?:字符串, 伦德拉斯:有吗 } export const Card:React.FC=功能卡({renderAs,className,children}){ 常量元素=渲染; 返回( {儿童} ) } 在实际使用该组件时,所有组件都按预期工作: 。。。 ... 但是我不确定,对于这个用例,如果使用renderAs:any是正确的类型,我将非常感谢您对此的一些
卡组件
从“React”导入React;
导出类型道具={
类名?:字符串,
伦德拉斯:有吗
}
export const Card:React.FC=功能卡({renderAs,className,children}){
常量元素=渲染;
返回(
{儿童}
)
}
在实际使用该组件时,所有组件都按预期工作:
。。。
...
但是我不确定,对于这个用例,如果使用renderAs:any
是正确的类型,我将非常感谢您对此的一些见解
提前谢谢你 您要传递的实际类型是React.ElementType
,离开
export type Props = {
className?: string,
renderAs: React.ElementType
}
您这样说的意思是希望将renderAs
设置为一些固有的JSX元素,例如section
,div
,span
这回答了你的问题吗?我想是的,但我恐怕没有足够的经验把它应用到我的情况中去。如果我读对了,我必须自己添加一个新类型?不幸的是,这与我使用它的方式不兼容。也许当你这样定义它的时候,你必须用不同于我描述它的方式来使用它。我在这里做了一个简单的实现:。注意,我想当然地认为,CartCard
是一个打字错误,实际上应该是Card
。我说的不对吗?谢谢!这一切都正常工作,我以前只是有错误,但现在一切正常,谢谢:)