此问题在此处已有答案:
Typescript property does not exist on union type(4个答案)
3天前关闭。
我希望创建一个接受两种可能配置之一的组件(参见代码)。
在定义的类型中,foo2
应该是有效的,但错误指出:
属性“foo 2 "在类型”{ foo:字符串;条形:字符串; }|{foo 2:编号;}“。属性”foo 2 "在类型“{ foo:字符串;条形:字符串;}'. ts(2339)
我希望能够要求foo
+ bar
或者只要求foo2
,foo2
可以工作,但是由于错误而无法执行额外的逻辑检查。这种情况的解决方案是什么?
type MyComponentProps = {
config:
| {
foo: string;
bar: string;
}
| {
foo2: number;
};
};
function MyComponent({config}: MyComponentProps) {
if (config?.foo2) {
//do something
}
return null;
}
1条答案
按热度按时间7ajki6be1#
foo2在联合体中的第一个类型上不存在,因此需要检查它: