联合阵列类型流



我有以下类型:

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: Array<inputElement> | Array<formElement>

我需要更改为

 Children: Array<inputElement | formElement>

因此,数组可以具有输入或构造,而不是其中的一个。

最新更新