Typescript 2d 数组定义引发错误
2018-07-18
99
我有扎实的 JavaScript 背景,正在尝试学习 TypeScript。我遇到了一个问题,我知道它在 JavaScript 中可以工作,但在 TypeScript 中却不行:
我试图用一个由 5 组成的矩阵或二维数组初始化一个类成员;这是我的代码:
private rows: number;
private cols: number;
private data: number[][];
constructor(rows: number, cols: number) {
this.rows = rows;
this.cols = cols;
this.data = [];
// init matrix with fives
for (let i: number = 0; i < this.rows; i++) {
this.data[i] = [];
for (let j: number = 0; j < this.cols; i++) {
this.data[i][j] = 5; // this is line 21
}
}
}
但是,每当我运行代码并尝试创建此类的新实例时,我都会在第 21 行(如上所示)收到错误:
Uncaught TypeError: Cannot set property '0' of undefined
我研究这个问题已经有一段时间了,似乎其他人没有这个问题。有人知道如何解决这个问题吗?
顺便说一句:我在纯 JS 中尝试了同样的代码,它运行良好,没有任何错误。
2个回答
看起来 i 在第二个循环中也会增加。
190386302
Madhan Varadhodiyil
2018-07-18
我看到您将数据变量声明为二维数组,然后在构造函数后将其初始化为一维数组。我认为在 TypeScript 中您不应该这样做。
vitomadio
2018-07-18