2017-04-30 7 views
0

TheWallがTileSpecsリテラル内で0になると予想しましたが、それはありません。なぜ、どのようにこれを修正するのですか?オブジェクトリテラルの列挙型

enum Tile = {WALL, BORDER} 
const TheWall: Tile = Tile.WALL; 

console.log(TheWall) // Prints 0 

let TileSpecs = { 
    TheWall: {prop: 'value'} 
} 

console.log(TileSpecs) // Prints TheWall: {...} 
+0

を、あなたは 'したい[TheWall]:{小道具:「の値'} ' – JohnnyHK

+0

うん。 0の場合:{prop: 'value'}。それは私がそうであると予想したものです。 – fubbe

答えて

3

プロパティ名としてごTheWall定数を使用するには、computed property name構文を使用する必要があります:私は右のあなたを理解していた場合

let TileSpecs = { 
    [TheWall]: {prop: 'value'} 
} 
+0

MyObject ['string'] = 'text'やMyObject [0] = anyNumberのように、オブジェクトリテラルの通常のjavascript構文と似ています。 – fubbe

+0

@fubbe右の計算されたプロパティ名は、同じ角括弧構文を使用します。 – JohnnyHK

+0

あなたの応答のために、他のすべてに感謝します。 – fubbe