小编典典

React中的PropTypes

reactjs

在某些示例中,我看到了类似以下内容:

Footer.propTypes = {
  completedCount: PropTypes.number.isRequired,
  activeCount: PropTypes.number.isRequired,
  filter: PropTypes.string.isRequired,
  onClearCompleted: PropTypes.func.isRequired,
  onShow: PropTypes.func.isRequired
}

这些到底在PropTypes做什么?它们是必备品吗?


阅读 260

收藏
2020-07-22

共1个答案

小编典典

正如finalFreq所指出的,我已经纠正了!“提供的示例将在React的未来版本中正常工作。不赞成使用React的方法,直接调用proptypes函数,但对组件进行注释将在当前和将来的版本中正常工作。”

如果您只是在JS中学习类型,我建议使用流程类型
,它可以在构建时而不是在运行时使用。这在编辑器中有效!当缺少不太明显的类型,为null或其他类型时,编辑器扩展还使用强推断来提醒您。主要好处是它可以加快开发速度并减少错误,而不会减慢运行时间。在生产之前,您可以轻松地从js中剥离流程。

FlowType: https **://flowtype.org/docs/getting-
started.html#_**

如果您想使用更强大和功能更强大的set 来学习JS中的类型, 我建议使用TypeScript

打字稿: https :
//github.com/Microsoft/TypeScript

要回答您的问题,原型不是必须的,在某一时刻被认为是实验性的。我喜欢它们,但是流程类型更实用,恕我直言。主要用途是通过在开发中早期发出警告来防止组件的误用,并提供编码文档以更好地理解(发布性)。

编辑:我也想明确指出,原型也可以剥离用于生产。

2020-07-22