流中的联合数组类型

时间:2017-12-25 12:13:16

标签: reactjs flowtype

我有以下类型:

type formElement = {
  name: string,
  dirty: boolean,
  valid: boolean,
  Errors: Array<inputErrorType>,
  Children: Array<inputElement> | Array<formElement>
}

type inputElement = {
  name: string,
  value: string,
  dirty: boolean,
  valid: boolean,
  Errors: Array<inputErrorType>
};

然后我想声明这些类型的对象。

var topForm: formElement = {
  name: "MainForm",
  type: "Form",
  dirty: false,
  valid: true,
  Errors: [],
  Children: [
     { 
      name: "First",
      value: "test",
      dirty: true,
      valid: true,
      Errors: []
    }
  ]
}

我收到的错误是:

Could not decide which case to select union type

显然,因为我错过了“Children”属性,所以数组中的项应该是inputElement。

1 个答案:

答案 0 :(得分:1)

Children: Array<inputElement> | Array<formElement>

我需要改为

 Children: Array<inputElement | formElement>

因此,数组可以同时包含inputElement或formElement,而不是其中之一。