TypeScriptでは、 型を定義する → それに合わせて値を定義する のが一般的な型定義の方法です。 しかし、以下のように定数とそのUnion型を定義したい場合はどうでしょうか? 新たにプロパティを足す度に型定義を修正する必要があり面倒です。 type SettingKeys = "foo" | "bar" | "baz" type SettingValues = 1 | 2 | 3 const SETTING: Record<SettingKeys, SettingValues> = { foo: 1, bar: 2, baz: 3, // ↓を足そうとするとSettingKeys、SettingValuesの型定義を修正する必要がある // piyo: 4 }