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が生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。