我有以下类型:
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。
答案 0 :(得分:1)
Children: Array<inputElement> | Array<formElement>
我需要改为
Children: Array<inputElement | formElement>
因此,数组可以同时包含inputElement或formElement,而不是其中之一。