我想在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;
所以现在我的问题是:这段代码有什么问题,我该如何解决? 谢谢。
答案 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编译器可以自动推断它们。