タグ

2022年12月29日のブックマーク (1件)

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

    こんにちは。 スペースマーケットでフロントエンドエンジニアをしている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がおすすめ
    shunkeen
    shunkeen 2022/12/29
    MonadPlus的なアレね([]がmzeroになるからfilterできる的な曖昧な知識)。しかし、そこまで型を気にするなら`flatMap(x => x == null ? [] : [x])`と書きそうなもんだが、どうなんじゃろか。`[x]`にしないと予期せぬ平坦化がおきそう…