大家好,
请问想要定义Props,有一个child,我想要固定格式的(如下:一定要有Breadcrumb,然后其他的内容可以自定):
<Breadcrumb>
...
</Breadcrumb>
<Button>
...
</Button>
但是我只知道使用 React.ReactNode 约束数据类型,但是这个不能保证我上面的JSX格式:
type MyCmponentProps = {
title: string,
child: React.ReactNode
}
大家好,
请问想要定义Props,有一个child,我想要固定格式的(如下:一定要有Breadcrumb,然后其他的内容可以自定):
<Breadcrumb>
...
</Breadcrumb>
<Button>
...
</Button>
但是我只知道使用 React.ReactNode 约束数据类型,但是这个不能保证我上面的JSX格式:
type MyCmponentProps = {
title: string,
child: React.ReactNode
}
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
6 回答2.4k 阅读
5 回答6.4k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
约束不了。
你只能类型约束 child 一定具有某种 Props,从而近似得到约束子组件类型的目的:
但你不能约束子组件中一定包含某种子组件。原因很简单,你觉得:
这玩意儿是什么类型?
没有类型,何谈约束?
P.S. 你要真想做约束的话建议在运行时做验证,而不是靠 TS 类型声明。