Typescript TS错误:es2015,类型';数组<;任何>;|未定义[]和#x27;必须有一个';[Symbol.iterator]()';方法返回一个迭代器

Typescript TS错误:es2015,类型';数组<;任何>;|未定义[]和#x27;必须有一个';[Symbol.iterator]()';方法返回一个迭代器,typescript,Typescript,当我从es2015更改tsConfig.json目标:es5时。我开始出现构建错误 错误TS2488:类型“Array | undefined[]”必须具有返回迭代器的“Symbol.iterator”方法 this.navItems=[ …(this.authService.hasHomePageAccess()?{displayName:'Home',iconName:'',route:'Home'}:[]),其中, …(this.authService.hasAboutPageAcces

当我从es2015更改tsConfig.json目标:es5时。我开始出现构建错误

错误TS2488:类型“Array | undefined[]”必须具有返回迭代器的“Symbol.iterator”方法

this.navItems=[
…(this.authService.hasHomePageAccess()?{displayName:'Home',iconName:'',route:'Home'}:[]),其中,
…(this.authService.hasAboutPageAccess()?{displayName:'About',iconName:'',route:'About'}:[]),
…(this.authService.hasReportsPageAccess()?{displayName:'Dashbaord',iconName:'',route:'Dashbaord'}:[]),

];
{displayName:'Home',iconName:'',route:'Home'}
和其他两个对象不可编辑。更一般地说,您最有可能使用简单的
if
push
来有条件地添加项目。这在es5中运行良好,不确定在es2015中发生了什么变化。嗯,如果您的测试为真,则返回一个对象,否则返回一个空数组。。。这是不一致的。。两个返回值应相同。对象或数组。将值分散到对象或数组中是错误的