こんにちは!TypeScriptの世界へようこそ。
型定義の世界に足を踏み入れると、最初は「何だか難しそう…」と身構えてしまうかもしれませんね。でも、大丈夫。今日お話しする`Record`型は、あなたのコードを劇的にスッキリさせ、かつミスを減らしてくれる「魔法の整理箱」のような存在なんです。
一緒に紐解いていきましょう。
—
1. `Record`型って、結局なにもの?
TypeScriptでオブジェクトを作るとき、普通はこう書きますよね。
// 普通のオブジェクト定義
const user: { name: string; age: number } = {
name: “たろう”,
age: 25
};
でも、もし「キーが何種類あるか分からないけれど、全部同じ種類のデータが入る」という状況だったらどうでしょう?例えば、「各曜日の最高気温」を記録するような場合です。
そんな時、いちいち全てのキーを列挙するのは大変ですよね。そこで登場するのが `Record
イメージとしては、「ラベル(Keys)」と「中身の型(Type)」をセットにして、一気に箱を作るための型だと思ってください。
—
2. お買い物の「レシート」でイメージしてみよう
例えば、あなたがスーパーでお買い物をしたとします。レシートには「品名(キー)」と「価格(値)」が並んでいますよね。
「品名は文字列(string)で、価格は数値(number)だ」と決まっているなら、`Record`を使ってこう定義できます。
// 買い物リストの型を定義
// キー:商品名(string)、値:価格(number)
const shoppingList: Record
“りんご”: 150,
“バナナ”: 200,
“牛乳”: 250
};
// これなら、新しい商品が増えても大丈夫!
shoppingList[“パン”] = 180;
どうでしょう? `Record
—
3. もっと厳密に!「決まった項目」だけを管理する
`Record`の面白いところは、キーを自由に制限できることです。
さっきの例ではキーを「どんな文字列でもOK(string)」にしましたが、次は「月曜日から金曜日まで」に限定してみましょう。
// キーを限定する(ユニオン型を使います)
type Weekdays = “mon” | “tue” | “wed” | “thu” | “fri”;
// 「平日限定」のスケジュール表
const workSchedule: Record
mon: “会議”,
tue: “資料作成”,
wed: “打ち合わせ”,
thu: “開発”,
fri: “振り返り”
};
// もし「sun(日曜日)」を入れようとすると…
// エラーが出るので、バグを未然に防げるんです!
これこそがTypeScriptの真骨頂です。「入れられる場所をあらかじめ決めておくことで、未来の自分のミスをガードする」。これができるだけで、あなたのコードの信頼性はグッと上がります。
—
4. 初学者がつまずきやすい「落とし穴」
ここで一つだけ、現場でよくある失敗談をシェアしますね。
`Record`を使うと、「そのキーが存在しない場合でも、TypeScriptは中身があるものとして扱ってしまう」という特徴があります。
const scores: Record
// TypeScriptは「scores.mathは数値が入っているはず!」と信じ込む
console.log(scores.math + 10);
// 実際には undefined + 10 なので、実行時にNaNになってしまう…!
「あれ?型定義したのに動かない!」と焦るかもしれませんが、大丈夫。そんな時は、値を `number | undefined` にしたり、値の存在をチェックする処理を添えてあげればOKです。
—
最後に:完璧を目指さなくていいんです
`Record`は、コードを整理整頓するための「整理箱」です。最初は使いこなせなくても全く問題ありません。「あ、ここ同じ型のものがたくさん並ぶな」と思った瞬間に、そっとこの`Record`を思い出してみてください。
TypeScriptは、あなたの書くコードをより安全で、より読みやすくするための最高の相棒です。今日学んだ「整理箱」を武器に、ぜひ明日からのコーディングを少しだけ楽しんでみてくださいね。
もし分からないことがあれば、いつでも何度でも聞いてください。プログラミングの道は、そうやって一つずつ積み上げていくのが一番の近道ですから。応援していますよ!

コメント