aknow2

自分の興味のある事を連々と(プログラミング、モバイルアプリ、プログラミング教育)

【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'

やったね!