创建一个二维数组,用打字稿中的枚举填充

时间:2017-12-25 22:23:21

标签: arrays typescript multidimensional-array enums

我想在TypeScript中创建一个用枚举填充的二维数组,我做了很多研究,但发现我无法使用。 这是我到目前为止编写的代码:

enum States { neutral, one, two };

export let gameField: States[][];
gameField = [];

for(var i: number = 0; i < 10; i++) {
   gameField = [];
   for(var j: number = 0; j< 10; j++) {
      gameField[j] = States.neutral;
   }
 }

但是行gameField[j] = States.neutral;会产生以下错误消息: &#34; Type&#34; States.neutral&#34;不能分配到类型&#34;州[]&#34;&#34;

所以现在我的问题是:这段代码有什么问题,我该如何解决? 谢谢。

1 个答案:

答案 0 :(得分:0)

错误是由于您尝试将States类型的单个值分配给States[]类型(States数组)。在您的代码中,您实际上并不是创建2D数组,而是创建一维数组。

我在这里为你解决了这个问题:

enum States {
  neutral,
  one,
  two
}

export let gameField: States[][];
gameField = [];

for (let i = 0; i < 10; i++) {
  gameField[i] = Array(10);
  for (let j = 0; j < 10; j++) {
    gameField[i][j] = States.neutral;
  }
}

提示:您不需要声明分配的变量类型,例如: var a: number = 1,因为TypeScript编译器可以自动推断它们。