【Typescript】オブジェクトのキーの文字列のみを許容する動的な型宣言
オブジェクトのキーをオブジェクトの型のプロパティーとしてそのまま流用したい場合。
まず、オブジェクトの型を定義したい場合
type Panda = { age: number } const panda: Panda = { age: 11, } //型通り
そのオブジェクトのキーをage, name, color, dream のいずれかにしたい場合
type Panda = {[K in 'age'|'name'|'color'|'dream']: string} const panda: Panda = {age: "fifty five" ,name: "Eric Clapton",color: "red", dream: "change the world"}
インターフェースのオブジェクトのキーを次の型のプロパティーにする
type Panda = { age: number; name: string; dream: string; } type Pandaaaa = {[K in keyof Panda]: string} // Panda型のキーがPandaaaaのプロパティーとして使える
上記のように、オブジェクトのキーも特定の文字だけしか入らないようにすることが可能。
特に [K in keyof Object]
と記述し、オブジェクトのプロパティを指定したり、
[K in 'A'|'B'|'C']
と記述し、特定のキーを直書きすることができる。