我有一个界面:
export interface DocumentBlock {
children: DocumentBlock[] | DocumentField[];
}
当我尝试在foreach中设置类型DocumentField
时
this.documentBlock.children.forEach((element: DocumentField) => {});
我收到此错误:
类型'(element:DocumentField)=>无效'不能分配给类型
当我添加时:元素:DocumentField | DocumentBlock
当我尝试获得它时,IU在type
中没有DocumentField
属性:
element.type
我已经尝试过了:
this.documentBlock.children.forEach((element: DocumentField | DocumentBlock) => {
if (element.type == 0) {
(element as DocumentField).visible = true;
}
});
答案 0 :(得分:0)
您所做的完全正确,是解决问题的唯一方法。基本上,您需要一种assert the type传递给函数的方法,以使TS编译器理解您实际上传递的是两种可能的类型中的哪一种。