在某些示例中,我看到了类似以下内容:
Footer.propTypes = { completedCount: PropTypes.number.isRequired, activeCount: PropTypes.number.isRequired, filter: PropTypes.string.isRequired, onClearCompleted: PropTypes.func.isRequired, onShow: PropTypes.func.isRequired }
这些到底在PropTypes做什么?它们是必备品吗?
PropTypes
正如finalFreq所指出的,我已经纠正了!“提供的示例将在React的未来版本中正常工作。不赞成使用React的方法,直接调用proptypes函数,但对组件进行注释将在当前和将来的版本中正常工作。”
如果您只是在JS中学习类型,我建议使用流程类型 ,它可以在构建时而不是在运行时使用。这在编辑器中有效!当缺少不太明显的类型,为null或其他类型时,编辑器扩展还使用强推断来提醒您。主要好处是它可以加快开发速度并减少错误,而不会减慢运行时间。在生产之前,您可以轻松地从js中剥离流程。
FlowType: https **://flowtype.org/docs/getting- started.html#_**
如果您想使用更强大和功能更强大的set 来学习JS中的类型, 我建议使用TypeScript 。
打字稿: https : //github.com/Microsoft/TypeScript
要回答您的问题,原型不是必须的,在某一时刻被认为是实验性的。我喜欢它们,但是流程类型更实用,恕我直言。主要用途是通过在开发中早期发出警告来防止组件的误用,并提供编码文档以更好地理解(发布性)。
编辑:我也想明确指出,原型也可以剥离用于生产。