エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

Typescriptでオブジェクトからキーを抜き出して一括操作する

経緯

Typescriptでオブジェクトがもつキーにすべてアクセスしようとしたときに、ちょっとハマったのでメモ

実装

最初に作ったコード

for (let key in params) {
    console.log(key, params[key]);
}

ts7053のエラーが出てくる。
indexの型が特定できないために発生しているらしい。

なので、保持しているプロパティ名と型を取れれば、解消できる。
なので、keyof typeofを使って、名称の方を取得する。

最終的にできたコード

for (key in params) {
  console.log(key, params[key]);
}

このコードにたどり着いたけど、paramsにundefindの可能性がある項目が含まれていると、エラーになるので、初期化する段階で含まれないようにする必要がある。

感想

いろんな原因が複合されてるせいで、解決に時間がかかってしまった。
最終的にできたコードになったけど、エラーが出てきて、???状態だった。
久々にtypescriptやると、わけが分からん。

型定義で沼りそう。

参考サイト

【TypeScript】keyofとtypeofよく忘れるのでまとめ - Qiita

keyof typeofでオブジェクトからキーだけを抜き出して型を生成する