TL;DR

  • ループの代わりに、map や reduce といった関数型の標準 API や、Lodash のようなユーティリティライブラリを使う。
  • 変換の過程で型情報が正しく保たれるので型アノテーションを減らせ、可読性も上がる。

内容

ループで配列を組み立てると、途中の変数に型が付かず、型エラーになったり型アノテーションが必要になったりする。

let allPlayers = []
for (const players of Object.values(rosters)) {
  allPlayers = allPlayers.concat(players) // 型エラー
}

関数型の標準 API を使うと、変換の過程で型情報が正確に保たれる。型アノテーションを書かなくて済み、コードも読みやすくなる。

const allPlayers = Object.values(rosters).flat()

キーワード