[Typescript]Object.entiriesの型がstringになってしまう問題の対処法

Typescript

Object.entriesでdictからkeyとvalueを取り出そうとしたときに、stringになってしまう問題の対処法
Object.keysの同様のエラーについては以下をご参照ください

対処法. Object.entriesの型を上書きする

src/types/ObjectEntries.d.tsなどを作成し、以下のように型を上書きします

type ObjectEntries<T> = T extends Record<string, unknown>
  ? {
      [K in keyof T]: [K, T[K]];
    }[keyof T][]
  : never;

interface ObjectConstructor {
  entries<T>(o: T): ObjectEntries<T>;
}

これでObject.entriesを使用する場合は自動的に推論が当たるようになります

コメント

タイトルとURLをコピーしました