← inaro.devAI駆動開発 学習ツール
応用

keyofとtypeof

なぜ学ぶか: keyof typeof COLORS — AIのコードにたまに出るこの呪文、初見では読めませんが、分解すると2段階の変換をしているだけです。例で種明かしします。

まずはこの例を見てみましょう

const COLORS = {
  primary: "#2563eb",
  success: "#16a34a",
} as const;

// 右から読む: 「COLORS という値の → 型の → キー一覧」
type ColorName = keyof typeof COLORS; // "primary" | "success"

const c: ColorName = "primary";   // OK
// const bad: ColorName = "warning"; // ← COLORS に無いのでエラー

keyof typeofは右から読みます。「値 → 型 → キーの一覧」の2段変換です。

typeof=値から型を取り出す

実際のCOLORSの形から、型を作っています。

keyof=型からキー名の一覧を取り出す

「この型が持つ項目名のどれか」という型になります。例では"primary" | "success"です。

値を足せば型もついてくる

COLORSに色を足すとColorNameにも自動で増えます。前にやったas constと同じ「一覧は1箇所」の発想です。

ステップ 1 / 3

※ カリキュラムの内容はAIが生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。