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

问题描述 投票:0回答:1

我想在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;产生以下错误消息:“类型”States.neutral“无法分配给类型”States []“”

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

arrays typescript multidimensional-array enums
1个回答
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编译器可以自动推断它们。

© www.soinside.com 2019 - 2024. All rights reserved.