typescript の Object の中のキーが動的に決まる時の型宣言の仕方
対象読者
typescript 初心者
解決すること
typescript でオブジェクトのキーが動的に決まる時の型宣言の仕方を学ぶ
内容
typescript を使っててよく忘れることの1つに、Object型を使っていて、キーが動的に決まる時の型宣言をしたいと言う時のやつがある。
const array = ['a', 'b' ]
const A = { a: ['a', 'A'], b: ['b', 'B'] }
な感じに array から A の形に変更したい時とか。
const data = {}
const array = ['a', 'b']
Object.keys(array).forEach(
k => data[k] = [k, k.toUpperCase()]
)
上みたいな感じで。この時の型宣言は以下が正解。
const data : {[key: string]: string[]} = {}
この、'key' ってのは実はなんでも良い。この、keyの部分を使わないから、必然性を感じなくていつも忘れるんだと思う。
このやり方の名前は、インデックスシグネチャと言うらしい。