我试图将日期对象推入数组,但出现此错误“无法读取未定义的属性'push'”。
export class CalendarComponent {
days: Date[]
showMonths() {
const interval = new Interval();
interval.fromMonth = this.selectedFromMonth.number;
interval.fromYear = this.selectedFromYear.number;
interval.toMonth = this.selectedToMonth.number;
interval.toYear = this.selectedToYear.number;
for (let i = interval.fromMonth - 1; i < 11; i++) {
const day = new Date(interval.fromYear, i, 1);
this.days.push(day);
// console.log(day);
// days.push(day);
}
// console.log(day);
}
如果'days'已经是一个数组,而'day'不是未定义,为什么会出现此错误?
答案 0 :(得分:5)
您需要初始化您的属性。您刚刚设置了它的类型,但实际上它是undefined
。
days: Date[] = [];
答案 1 :(得分:1)
静态类型化将是打字机的未来,当您将代码编译为javascript类型化时,这将对构建期间的开发人员毫无帮助。
days: Date[]
与days
相同,并且初始值未定义
var days;
console.log(days); // => undefined
为什么您需要在使用[]
空数组之前需要有天数
days: Date[] = [];