具有有效属性的React Typescript错误[重复]

im9ewurl  于 2022-11-26  发布在  TypeScript
关注(0)|答案(1)|浏览(82)

此问题在此处已有答案

Typescript property does not exist on union type(4个答案)
3天前关闭。
我希望创建一个接受两种可能配置之一的组件(参见代码)。
在定义的类型中,foo2应该是有效的,但错误指出:
属性“foo 2 "在类型”{ foo:字符串;条形:字符串; }|{foo 2:编号;}“。属性”foo 2 "在类型“{ foo:字符串;条形:字符串;}'. ts(2339)
我希望能够要求foo + bar或者只要求foo2foo2可以工作,但是由于错误而无法执行额外的逻辑检查。这种情况的解决方案是什么?

type MyComponentProps = {
  config:
    | {
        foo: string;
        bar: string;
      }
    | {
        foo2: number;
      };
};

function MyComponent({config}: MyComponentProps) {
  if (config?.foo2) {
    //do something
  }

  return null;
}

7ajki6be

7ajki6be1#

foo2在联合体中的第一个类型上不存在,因此需要检查它:

if ('foo2' in config) {
    // foo2 is now available
    config.foo2
  }

相关问题