マップ型とは
キーと値がセットになって情報を保管する型。
かつ、キーも値も型指定したもの。
type
を使って、このように定義できます。
type NAME = { [ key in TYPE ]: TYPE
stringのキーのマップ
キーも値も共にstring
のマップ型。
type stringMap = { [ key in string ]: string }
const data: stringMap = {
a: 'AAA',
b: 'BBB',
c: 'CCC',
}
data['d'] = 'DDD'
data[1] = 'ONE'
console.log(data)
ちなみに、上記のdata[1]
は、'1'
のテキストに変換される。
[LOG]: {
"1": "ONE",
"a": "AAA",
"b": "BBB",
"c": "CCC",
"d": "DDD"
}
enumで指定されたキー
enumの値をキーに指定したマップ型。
enum company { name='name', address='address' }
type CompanyMap = { [ key in company ]: string }
const toyota: CompanyMap = {
name: 'toyota',
address: 'Aichi'
}
const sony: CompanyMap = {
name: 'sony',
address: 'Tokyo'
}
[ key in company ]
としたことで、CompanyMap
型では必ずname
とaddress
の項目が必須となる。
あらかじめ用意されている項目が確定されているような場合はtype
でマップ型を作成するべし!!