【Typescrit】 map objectのkeyのtypeを生成したい。
例えばこんなオブジェクトがあるとする。
const person = { name: 'hoge', age: 4, }
このオブジェクトのkeyのtypeを作りたい。
こんな感じ
type PersonKeys = 'name'|'age';
単純にkeyofをpersonオブジェクトに当てると,,,
export type PersonKeys = keyof person; // 'person' refers to a value, but is being used as a type here.
personは値でありtypeでは無いのでtypeに変換する事は出来ないと出る。
困った。
解決方法
typeofを入れると良い。
export type PersonKeys = keyof typeof person; // type person = 'name' | 'age'
やったね!