我有以下类型:
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>
因此,数组可以具有输入或构造,而不是其中的一个。