我绝对是TypeScript的初学者。我想通过“for”循环在TypeScript中初始化一个数字数组,如下所示:
public hours: number[];
constructor() {
for (let i: number = 1; i < 25; i++) {
this.hours[i] = i;
}
}
我收到错误:无法设置未定义的属性“1”。 你能帮我吗?
答案 0 :(得分:9)
这一行:
$('.CssClass_btnNewActivity').click(function () {
$('#frameInsertActivity').attr('src', 'InputForms/InsertActivity.aspx');
});
不创建新数组,只声明它 如果您编译此代码:
public hours: number[];
你得到:
class MyClass {
public hours: number[];
constructor() {
for (let i: number = 1; i < 25; i++) {
this.hours[i] = i;
}
}
}
如您所见,var MyClass = (function () {
function MyClass() {
for (var i = 1; i < 25; i++) {
this.hours[i] = i;
}
}
return MyClass;
}());
未被分配。
所以你需要这样做:
this.hours
或者:
constructor() {
this.hours = [];
for (let i: number = 1; i < 25; i++) {
this.hours[i] = i;
}
}
答案 1 :(得分:1)
小时未设置为任何值。您可以在构造函数中创建一个新数组,或将小时数设置为空数组:
public hours: number[] = [];
constructor() {
for (let i: number = 1; i < 25; i++) {
this.hours[i] = i;
}
}