UNPKG

@zstings/utils

Version:

javascript、typescript 工具函数库 文档地址 [utils 文档](https://zstings.github.io/utils/)

18 lines (17 loc) 713 B
type MergeTuple<T extends any[]> = T extends [infer F, ...infer R] ? Omit<F, keyof MergeTuple<R>> & MergeTuple<R> : {}; type Merge<T, U> = Omit<T, keyof U> & U; /** * 合并对象 * @param target 目标对象,被合并的对象 * @param sources 源对象,可以多个 * @return 目标对象 * @throws target参数必须是object target参数不是对象时触发 * @category 对象Object * @example * 对象合并效果与Object.assign一致 * ```ts * assign({a: 1, c: 3}, {c: 5}) // => {a: 1, c: 5} * ``` */ export default function assign<T extends Record<string, any>, U extends Record<string, any>[]>(target: T, ...sources: U): keyof T extends never ? {} : Merge<T, MergeTuple<U>>; export {};