Answers:
将两个组件道具同时保持为TypeScript类型通常没有太大价值React.PropTypes
。
在某些情况下,这样做很有用:
因此,通常这是您可以信任编译时间验证多少的问题。
现在,较新版本的TypeScript可以根据您的React.PropTypes
(PropTypes.InferProps
)推断类型,但是生成的类型可能难以使用或在代码的其他地方引用。
Typescript和PropTypes具有不同的用途。Typescript在编译时验证类型,而PropTypes在运行时检查。
Typescript在编写代码时很有用:如果将错误类型的参数传递给React组件,为函数调用提供自动完成功能等,它将警告您。
当您测试组件如何与外部数据交互时,例如从API加载JSON时,PropTypes很有用。PropTypes将通过打印如下有用消息来帮助您调试(当处于React的开发模式时)组件失败的原因:
Warning: Failed prop type: Invalid prop `id` of type `number` supplied to `Table`, expected `string`
即使看起来Typescript和PropTypes做同样的事情,它们实际上根本不重叠。但是可以从Typescript自动生成PropType,这样您就不必两次指定类型,例如: