如果我有这样定义的props:
interface Props {
Layout?: LayoutComponent;
}
然后,如果我在 a 上提供 defaultProps ClassComponent
:
class MyComp extends React.Component<Props> {
static defaultProps: Pick<Props, 'Layout'> = {
Layout: ({ children }) => <>{children}</>
};
}
Typescript 没有发现它不能被取消定义的事实:
render() {
const { previousLocation, data } = this.state;
const { location, Layout } = this.props;
const initialData = this.prefetcherCache[location.pathname] || data;
return (
<Layout> // JSX element type 'Layout' does not have any construct or call signatures.
<Switch>
由于defaultProps
. typescript没有选择这个。
无论如何让编译器知道它不能是未定义的?