Skip to content

mergeSkipNullish

Static Badge

左から右に複数のオブジェクトをマージして新しいオブジェクトを形成します。

先のオブジェクトの null または undefined でないフィールドは、後のオブジェクトの null または undefined のフィールドによって上書きされません。

Added in v0.0.4

Usage

ts
import { mergeSkipNullish } from 'parsnip-kit'

const obj1 = { a: 1, b: null, c: undefined }
const obj2 = { b: 2, c: 3, d: null }
const obj3 = { c: undefined, d: 4, e: 5 }

mergeSkipNullish(obj1, obj2, obj3) // { a: 1, b: 2, c: 3, d: 4, e: 5 }

API

Type Parameter

ArgTypeDescription
Textends objectマージするオブジェクトの型

Arguments

ArgTypeOptionalDefaultDescription
...objs(T | Nullish)[]falseundefinedThe objects to merge

Returns

Type
T

Type Definition

ts
{
  <T extends object, U extends object>(
    a: T | Nullish, b: U | Nullish
  ): SpreadSkipNullish<T, U>
  <T extends object, U extends object, V extends object>(
    a: T | Nullish, b: U | Nullish, c: V | Nullish
  ): SpreadSkipNullish<SpreadSkipNullish<T, U>, V>
  <T extends object, U extends object, V extends object, W extends object>(
    a: T | Nullish, b: U | Nullish, c: V | Nullish, d: W | Nullish
  ): SpreadSkipNullish<SpreadSkipNullish<SpreadSkipNullish<T, U>, V>, W>
  (...objs: any[]): any
}

Reference

Nullish SpreadSkipNullish