我正在将 React 与 TypeScript 一起使用,并且创建了无状态函数。为了可读性,我从示例中删除了无用的代码。
interface CenterBoxProps extends React.Props<CenterBoxProps> {
minHeight?: number;
}
export const CenterBox = (props: CenterBoxProps) => {
const minHeight = props.minHeight || 250;
const style = {
minHeight: minHeight
};
return <div style={style}>Example div</div>;
};
一切都很好,这段代码工作正常。但有我的问题:我怎么可以定义defaultProps
为CenterBox
组件?
正如react文档中提到的那样:
(...) 它们是输入的纯函数转换,零样板。但是,您仍然可以通过将.propTypes 和.defaultProps设置为函数的属性来指定 它们,就像在 ES6 类上设置它们一样。(...)
它应该很容易,因为:
CenterBox.defaultProps = {
minHeight: 250
}
但是这段代码会产生 TSLint 错误: error TS2339: Property 'defaultProps' does not exist on type '(props: CenterBoxProps) => Element'.
再说一遍:如何defaultProps
在上面的堆栈(React + TypeScript)中正确定义?