Reactjs 有条件地反应不允许属性/属性

Reactjs 有条件地反应不允许属性/属性,reactjs,phpstorm,webstorm,Reactjs,Phpstorm,Webstorm,给定一个以道具为样式的排版组件,有没有一种方法可以禁止基于所用道具的其他道具,最好是通过代码暗示 正如Fez所说,您只需在运行时进行检查即可。如果您想专门使用道具类型,您可以编写实现此行为的自定义道具类型,并在运行时发出通知,但是看起来Webstorm的linting并没有发现错误 const exclusiverops=(…exclusive)=>(props、propName、componentName)=>{ 不包括forEach(prop=>{ 如果(prop!==propName&&

给定一个以道具为样式的排版组件,有没有一种方法可以禁止基于所用道具的其他道具,最好是通过代码暗示


正如Fez所说,您只需在运行时进行检查即可。如果您想专门使用道具类型,您可以编写实现此行为的自定义道具类型,并在运行时发出通知,但是看起来Webstorm的linting并没有发现错误

const exclusiverops=(…exclusive)=>(props、propName、componentName)=>{
不包括forEach(prop=>{
如果(prop!==propName&&props[prop]&&excl.indexOf(propName)>excl.indexOf(prop)){
抛出新错误(“组件”+componentName+”不能有“+prop+”和“+propName”)
}
})
};
const protectedProps=排他性操作(“src”、“href”、“children”);
常量ImageLink=({
src,
href,
儿童
}) => {
返回
{儿童}
;
};
ImageLink.propTypes={
src:protectedProps,
href:protectedProps
};
ReactDOM.render(Foo-Bar,app)

您只需在运行时检查两者是否存在,然后抛出一个错误
<Typography type={ Typography.HEADING } />