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()