我正在尝试使用(导入)联合类型的道具并将其用于react组件,以便最终app
的最终消费者可以在自动建议中“过滤”它们
并验证。
类型:
export type Clothes =
| Shirt
| Dress
| Pants
export interface Shirt {
size: "M" | "S";
name: "Shirt";
}
export interface Dress {
size: "XS";
name: "Dress";
}
export interface Pants {
size: "L" | "M" | "S";
name: "Pants";
}
反应成分:
export const Clothe = (props: Clothes & {className?: string}) => {
return (
<div className={props.className}>
<span>{`${props.name} ${props.size}`}</span>
</div>
)
}
消费者应用:
<Clothe name="Shirt" size="L" />
// this should be invalid
Clothe
的大小应仅由M
和S
组成,但结合会给我所有尺寸供选择(L
,{{ 1}},M
,S
)
例如如果我选择了错误的XS
和size
道具组合,则应该抛出“ ts”错误。
自动补全功能还应过滤掉特定类型的name
道具
基于选择的size
道具(最好是反转-对于name
道具仅过滤所有具有该大小的size
)。
如何实现?