• 通过key数组挑选出key数组组成的对象

    类型参数

    • T extends object
    • K extends string | number | symbol

    参数

    • originObj: T

      遍历对象

    • pickKeys: K[]

      需要挑选的key数组

    • 可选cb: ((value: T[K], key: K, originObj: T) => Pick<T, K>[K])

      对值进行修改

        • (value, key, originObj): Pick<T, K>[K]
        • 参数

          • value: T[K]
          • key: K
          • originObj: T

          返回 Pick<T, K>[K]

    返回 Pick<T, K>

    const obj = { a: 1, b: '2', c: ['12313', 111], d: false, e: { a: 1 }, f: undefined };

    pickByKeys(obj, []); // {}
    pickByKeys(obj, ['a']); // { a: 1 }
    pickByKeys(obj, ['b']); // { b: obj.b }
    pickByKeys(obj, ['c']); // { c: obj.c }
    pickByKeys(obj, ['a'], (v) => v + 1000); // { a: 1001 }
    // 不存在于对象中的属性会忽略
    pickByKeys(obj, ['g' as any]); // {}