考虑以下组件:
interface OProps {
// property here should be sent by parent
id: string;
}
interface IProps {
// property here just use internal for intellisense
notNeed: number;
}
export class Foo extends React.Component<OProps & IProps, void> {}
export class Bar extends React.Component<OProps & InejctedIntlProps, void> {}
当我使用Foo
组件时,它应该同时发送 OProps 和 IProps ......
// error: 'notNeed' is missing
const f = <Foo id="test" />;
// error: 'intl' is missing
const b = <Bar id="test" />;
IProps 可能在injectedIntlProps
、hoc 注入的 props、mobx 存储的 props 或任何不需要父级注入的 props 中。
我知道有一些方法可以解决它,例如:
export default injectedIntlProps<OProps>
(我不喜欢 export default...)或将 props 声明为 partial notNeed?: number
,但仍然想知道是否有更好的解决方案?只导出需要的道具...