Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

Object.keys()の返り値をstring[]型でなくユニオン型の配列にしたい

参照したページ

関数を定義して解決する

以下のようにするとkeysは ("hoge" | "foo" | "baz")[] 型になります。

  const obj = {
    hoge: 'value',
    foo: 'value',
    baz: 'value',
  };

  function getKeys<T extends Record<string, unknown>>(obj: T): (keyof T)[] {
    return Object.keys(obj)
  }

  const keys = getKeys(obj);