てけもぐ Tech 忘備録

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の部分を使わないから、必然性を感じなくていつも忘れるんだと思う。

このやり方の名前は、インデックスシグネチャと言うらしい。