📘

【TypeScript】配列の型を絞り込むときはflatMapがおすすめ

に公開3
スペースマーケット Engineer Blog

Discussion

hr20k_hr20k_

おもしろいですね、知らないハックでした。

わたしは下記の関数を用意しておいて null 除去をすることが多いですが、用意してないときは flatMap 使ってみます。(関数として用意しておけば間違った絞り込みはしないはず。。)

const nonNullable = <T>(value: T): value is NonNullable<T> =>
  value !== null && typeof value !== 'undefined';

// 使用時
const nonNullArray = ['hoge', null, 'fuga'].filter(nonNullable);
mizukimizuki

コメントいただきありがとうございます!
少しでも参考になっていましたら幸いです!

わたしは下記の関数を用意しておいて null 除去をすることが多いです

関数を定義しておくのは便利ですね!僕も参考になりました🙇‍♂️

ゆうたゆうた

この記事の方法は現時点では推奨できません。
flatMapでfilterのような処理をする事は普通考えないはずなので可読性が低下します。

TypeScript 5.5でfilterを利用すると型の絞り込みが出来ます。
今の時代はTypeScript5.5以上を利用してfilterを利用するべきです。

時代が変わった今は、この記事の内容はTypeScript 5.5未満であれば利用することを検討するぐらいの内容です。

※筆者を悪く言っているのではなく、古い記事ですが未だにGoogle検索して上位に出てくるのでコメントしています。