Recordとは
Recordは、TypeScriptで使用されるジェネリック型の一種です。Recordを使うと、オブジェクトのキーと値の型を指定して新しいオブジェクトを作成できます。
具体的には、
Record<KeyType, ValueType>
という形式で使用します。
例えば、Record<State, number>
は、Stateという列挙型のキーを持ち、その値の型がnumberであるオブジェクトを表します。具体的な使い方としては、州名をキーとして州税率を値とするオブジェクトを作成する場合などに利用されます。
const STATE_TAX: Record<State, number> = {
"Arizona": 4.9,
"California": 8.8,
"NorthCarolina": 2.5,
// 他の州の税率もここに追加する
};
このコードでは、各州をStateという列挙型で定義していることを前提としています。
列挙型の定義方法
列挙型 (enumerated type)。
例えば、次のように列挙型を定義することができます。
enum State {
Arizona = "Arizona",
California = "California",
NorthCarolina = "NorthCarolina",
// 他の州もここに追加する
}
または
type State = 'Arizona' | 'California' | 'Northcarolina';
このように定義されたStateは、指定された文字列のいずれかを取ることができる型となります。
これにより、特定の値を明示的に指定する必要がある場面で、不正な値を避けることができます。
コードをまとめると以下になります。
type State = 'Arizona' | 'California' | 'Northcarolina';
const STATE_TAX: Record<State, number> = {
'Arizona': 4.9,
'California': 8.8,
'Northcarolina': 2.5,
};