【TypeScript】Array.mapでcontinueするためにfilterでundefinedを型安全に除外する
TypeScriptのArray.map()
を使用していると、for文のcontinue
のようにスキップし特定の要素を新配列に含めたくないことがある。
が上記のようにreturn
すると新配列(userNames
)にundefined
が格納されてしまう。
解決法
Array.map()
で生成した配列からundefined
を除外する方法が真っ先に挙がる。
しかしArray.filter()
だと判定ロジックから返り値の型を推論してくれず、上記のようにundefined
が型から除外されない。
そこでType predicateを使用し型ガードすることで型問題も解決する。