2017-12-25 15 views
0

TypeScriptで列挙型の2次元配列を作成したいのですが、たくさんの研究をしましたが、私は何も使用できませんでした。 これは私が今、これまで書いてきたコードです:2次元配列をtypescriptでenumで埋めて作成する

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は米国』タイプに割り当てることができません 『[]』 "

私の質問は今です:このコードで何が間違っていますか、どうすれば修正できますか? ありがとうございます。

答えて

0

Statesの1つの値をタイプStates[](配列States)に割り当てることが原因でエラーが発生します。あなたのコードでは、実際には2D配列を作成するのではなく、1次元の配列を作成します。

ここで私はあなたのためにそれを固定:

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コンパイラはそれらを自動的に推論できるためです。

関連する問題