PropTypes.element:指React Element,即React.CreateElement生成的元素,React.CreateElement可以用jsx语法糖表示:

<MyButton color="blue" shadowSize={2}>
Click Me
</MyButton>

编译后为:

React.createElement(
MyButton,
{color: 'blue', shadowSize: 2},
'Click Me'
)

因此PropTypes.element可以为以下类型:string | 组件实列(组件标签,例如上面的<MyButtom>)

PropTypes.node:指React Node,任何可被渲染的元素,包括ReactChild | ReactFragment | ReactPortal | 字符串 | 数字 | 布尔值 | null | undefined | 数组;

摘自大神的回答:

  • JSX.Element -> Return value of React.createElement
  • React.ReactNode -> Return value of a component
05-11 19:24