我有以下界面:
export interface Development {
id: number;
type: string;
value: string;
formContent?: contentInterface;
}
和contentInterface
是具有以下内容的界面:
export interface contentInterface {
development: string;
name: string;
comment: string;
}
现在,当我执行以下操作时:
// tring to check if the next sectorForm[i] has formcontent values assigned
// if values are available in formcontent add that to a form.
if (typeof this.sectorForm[i + 1].formContent !== 'undefined') {
this.DevelopmentForm.setValue(this.sectorForm[i + 1].formContent);
}
sectorForm
声明如下:sectorForm: Development[]
上面的代码导致最后一个索引中的以下错误ERROR TypeError: Cannot read property 'formContent' of undefined
答案 0 :(得分:1)
避免索引问题,请使用forEach
this.sectorForm.forEach(form => {
//rest code
if (form.formContent) {
}
});
就这样做
if (this.sectorForm[i + 1] &&
this.sectorForm[i + 1].formContent)
注意:
如果您正在查找对象上存在的属性或不使用hasOwnProperty('property1')
它将检查null或undefined等。
答案 1 :(得分:0)
数组中的项可能为null,您应首先检查该项:
if (this.sectorForm[i + 1] && typeof this.sectorForm[i + 1].formContent !== 'undefined') {
this.DevelopmentForm.setValue(this.sectorForm[i + 1].formContent);
}