スペースマーケット Engineer BlogPublicationへの投稿📘【TypeScript】配列の型を絞り込むときはflatMapがおすすめmizuki2022/12/28に公開3件TypeScripttechスペースマーケット Engineer BlogPublicationスペースを簡単に貸し借りできるサービス「スペースマーケット」のエンジニアによる公式ブログです。 弊社採用技術スタックはこちら -> whatweuse.dev/company/spacemarketDiscussionhr20k_2022/12/28に更新おもしろいですね、知らないハックでした。 わたしは下記の関数を用意しておいて null 除去をすることが多いですが、用意してないときは flatMap 使ってみます。(関数として用意しておけば間違った絞り込みはしないはず。。) const nonNullable = <T>(value: T): value is NonNullable<T> => value !== null && typeof value !== 'undefined'; // 使用時 const nonNullArray = ['hoge', null, 'fuga'].filter(nonNullable); 返信を追加mizuki2022/12/28コメントいただきありがとうございます! 少しでも参考になっていましたら幸いです! わたしは下記の関数を用意しておいて null 除去をすることが多いです 関数を定義しておくのは便利ですね!僕も参考になりました🙇♂️ 返信を追加ゆうた2024/09/30に更新この記事の方法は現時点では推奨できません。 flatMapでfilterのような処理をする事は普通考えないはずなので可読性が低下します。 TypeScript 5.5でfilterを利用すると型の絞り込みが出来ます。 今の時代はTypeScript5.5以上を利用してfilterを利用するべきです。 時代が変わった今は、この記事の内容はTypeScript 5.5未満であれば利用することを検討するぐらいの内容です。 ※筆者を悪く言っているのではなく、古い記事ですが未だにGoogle検索して上位に出てくるのでコメントしています。 返信を追加
hr20k_2022/12/28に更新おもしろいですね、知らないハックでした。 わたしは下記の関数を用意しておいて null 除去をすることが多いですが、用意してないときは flatMap 使ってみます。(関数として用意しておけば間違った絞り込みはしないはず。。) const nonNullable = <T>(value: T): value is NonNullable<T> => value !== null && typeof value !== 'undefined'; // 使用時 const nonNullArray = ['hoge', null, 'fuga'].filter(nonNullable); 返信を追加
mizuki2022/12/28コメントいただきありがとうございます! 少しでも参考になっていましたら幸いです! わたしは下記の関数を用意しておいて null 除去をすることが多いです 関数を定義しておくのは便利ですね!僕も参考になりました🙇♂️ 返信を追加
ゆうた2024/09/30に更新この記事の方法は現時点では推奨できません。 flatMapでfilterのような処理をする事は普通考えないはずなので可読性が低下します。 TypeScript 5.5でfilterを利用すると型の絞り込みが出来ます。 今の時代はTypeScript5.5以上を利用してfilterを利用するべきです。 時代が変わった今は、この記事の内容はTypeScript 5.5未満であれば利用することを検討するぐらいの内容です。 ※筆者を悪く言っているのではなく、古い記事ですが未だにGoogle検索して上位に出てくるのでコメントしています。 返信を追加
Discussion
おもしろいですね、知らないハックでした。
わたしは下記の関数を用意しておいて null 除去をすることが多いですが、用意してないときは flatMap 使ってみます。(関数として用意しておけば間違った絞り込みはしないはず。。)
コメントいただきありがとうございます!
少しでも参考になっていましたら幸いです!
関数を定義しておくのは便利ですね!僕も参考になりました🙇♂️
この記事の方法は現時点では推奨できません。
flatMapでfilterのような処理をする事は普通考えないはずなので可読性が低下します。
TypeScript 5.5でfilterを利用すると型の絞り込みが出来ます。
今の時代はTypeScript5.5以上を利用してfilterを利用するべきです。
時代が変わった今は、この記事の内容はTypeScript 5.5未満であれば利用することを検討するぐらいの内容です。
※筆者を悪く言っているのではなく、古い記事ですが未だにGoogle検索して上位に出てくるのでコメントしています。