jsonのkeyに動的にkey名を代入したくて調べたら見つけたサイトを備忘メモ。
Keyに変数展開する
上記例を見ていただければ分かる通り,Valueに変数を展開することは当然可能です。しかし,Key側に変数展開しようとすると,展開せずに変数名がそのまま表示されてしまいます。
const newKey = 'hoge'
const obj = {
newKey: 'test'
};
console.log(obj) // { newKey: 'test' }
Keyに'hoge'のように変数展開したいときは,[newKey]のように[]で変数名を囲います。
const newKey = 'hoge'
const obj = {
[newKey]: 'test'
};
console.log(obj) // { hoge: 'test' }
ちなみに,この書き方はES2015以降で使える方法です。
この書き方どこかで見たことあるような...
そう!TypeScriptで型指定するときですね!
const someObject: {[id: string]: value} = {};
[id: string]のように,[]で囲っていることでidが変数であることを明示しているんですね。これを知るまでは,ObjectにはKey-Valueがいくつも入るから配列にしているのかな,とか思っていました[2]。
ちょっとしたことですが,新しいことを知ると嬉しいスッキリしますね。
以上になります。お読みいただきありがとうございました!