Yuki's Tech Blog

仕事で得た知見や勉強した技術を書きます。

【TS】keyof型演算子の使い方についてざっくりまとめてみた

目次

概要

keyof型演算子の使い方がパッと出なかったので、ブログにまとめようと思います。

keyof型演算子とは

keyof型演算子とは、オブジェクト型の複数のプロパティ名をリテラル型として持つ共用体型を作成する型演算子です。typeof型演算子は変数に対して使いましたが、keyof型演算子は、オブジェクトの型に対して使用するので、注意しましょう。keyof型演算子を使うことで、型を自分で定義する必要がなくなり、新しいプロパティが増えても型を変更する必要がないです。そのため、保守性が上がります。個人的には、keyofは擬似enumを作るときに使うかなという印象です。

以下の例の場合、type UserKey = "id" | "age" | "name"というリテラルの共用体型が作成されます。そのため、hpという文字列を代入しようとするとエラーが起きます。

type User = {
  id: string;
  age: number;
  name: string;
};

type UserKey = keyof User;

const key1: UserKey = "id";
const key2: UserKey = "age";
const key3: UserKey = "name";
const key4: UserKey = "hp";
// => Type '"hp"' is not assignable to type 'keyof User'.(2322)

参考記事

keyof型演算子 | TypeScript入門『サバイバルTypeScript』

TypeScript: Documentation - Keyof Type Operator