こんにちは。 スペースマーケットでフロントエンドエンジニアをしているmizukiです! 今回はタイトルの通り、配列で型を絞る際にflatMapを使うのがおすすめだよ!といった話をします。 配列から特定のデータを排除する 例えば、配列からnullableな値を消したいとします。 その場合は以下のようなコードになります。 const nullableArray: Array<string | null> = ['hoge', null, 'fuga'] const array = nullableArray.filter((data) => { return !!data }) ただ、この場合だと型定義としてはnullが排除されたことを認知できず、変数arrayの型は引き続きArray<string | null>と認識されてしまいます。 isを使って型を絞り込む 先ほどの場合、期待値としては
![【TypeScript】配列の型を絞り込むときはflatMapがおすすめ](https://cdn-ak-scissors.b.st-hatena.com/image/square/7fcd61923ddd18ea2b10f929fd3e31757a25b859/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--4JMymI9s--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3A%2525E3%252580%252590TypeScript%2525E3%252580%252591%2525E9%252585%25258D%2525E5%252588%252597%2525E3%252581%2525AE%2525E5%25259E%25258B%2525E3%252582%252592%2525E7%2525B5%25259E%2525E3%252582%25258A%2525E8%2525BE%2525BC%2525E3%252582%252580%2525E3%252581%2525A8%2525E3%252581%25258D%2525E3%252581%2525AFflatMap%2525E3%252581%25258C%2525E3%252581%25258A%2525E3%252581%252599%2525E3%252581%252599%2525E3%252582%252581%252Cw_1010%252Cx_90%252Cy_100%2Fco_rgb%3A6e7b85%252Cg_south_west%252Cl_text%3Anotosansjp-medium.otf_30%3A%2525E3%252582%2525B9%2525E3%252583%25259A%2525E3%252583%2525BC%2525E3%252582%2525B9%2525E3%252583%25259E%2525E3%252583%2525BC%2525E3%252582%2525B1%2525E3%252583%252583%2525E3%252583%252588%252520Engineer%252520Blog%252Cx_220%252Cy_135%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_34%3Amzk7124%252Cx_220%252Cy_84%2Fbo_3px_solid_rgb%3Ad6e3ed%252Cg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzc1NTA1NzM5OGYuanBlZw%3D%3D%252Cr_20%252Cw_90%252Cx_92%252Cy_82%2Fbo_4px_solid_white%252Cg_south_west%252Ch_50%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzVmMzQ0MzQ4MWYuanBlZw%3D%3D%252Cr_max%252Cw_50%252Cx_139%252Cy_64%2Fog-base.png)