keyof
型演算子
keyof
演算子は、オブジェクト型を受け取り、そのキーの文字列または数値リテラル結合を生成します。次の型P
は、type P = "x" | "y"
と同じ型です。
tsTry
typePoint = {x : number;y : number };typeP = keyofPoint ;
型にstring
またはnumber
のインデックスシグネチャがある場合、keyof
は代わりにそれらの型を返します
tsTry
typeArrayish = { [n : number]: unknown };typeA = keyofArrayish ;typeMapish = { [k : string]: boolean };typeM = keyofMapish ;
この例では、M
はstring | number
であることに注意してください。これは、JavaScriptのオブジェクトキーは常に文字列に強制されるため、obj[0]
は常にobj["0"]
と同じになるためです。
keyof
型は、マップ型と組み合わせると特に役立ちます。これについては後で詳しく学びます。