Skip to content

mergeSkipNullish

Static Badge

从左到右合并多个对象,形成一个新的对象。

前面对象中非 nullundefined 的字段不会被后面的 nullundefined 的字段覆盖。

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