pick

创建一个新对象,仅包含原对象中指定的键对应的属性。

使用场景

  • 属性选择:从对象中提取特定属性。
  • 数据投影:创建仅包含必要属性的新对象。
  • 不可变操作:不修改原对象的情况下创建子集副本。

示例

import { pick } from 'funtool';

const obj = { a: 1, b: 2, c: 3, d: 4 };

// 选择单个键
pick(obj, 'a'); // { a: 1 }

// 选择多个键
pick(obj, ['a', 'c']); // { a: 1, c: 3 }

// 选择Symbol键
const sym = Symbol('id');
const objWithSymbol = { [sym]: 123, e: 5 };
pick(objWithSymbol, sym); // { [Symbol(id)]: 123 }

签名

function pick<T extends object, K extends keyof T>(
  obj: T,
  keys: K | K[]
): Pick<T, K>

参数

  • obj (T extends object): 源对象。
  • keys (K | K[]): 要包含的键或键数组。

返回值

  • (Pick<T, K>): 仅包含指定键的新对象。