You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在TS/NodeJS中如何将对象转换为仅包含id属性的目标对象

TS/NodeJS 提取对象指定字段实现方案

下面给出几种常用的实现方式,都可以满足仅保留对象id字段的需求:

1. 直接构造新对象(最简单,适合固定字段提取)

直接从原始对象取id字段构造新对象即可:

const original = {
  "id": "Test",
  "firstname": "Test",
  "lastname": "Test",
  "age": 83
};

const result = { id: original.id };

2. 解构赋值实现

如果原始对象字段多,也可以用解构语法过滤不需要的字段:

const original = {
  "id": "Test",
  "firstname": "Test",
  "lastname": "Test",
  "age": 83
};
// 只取id,剩余字段放到rest变量里不需要使用即可
const { id, ...rest } = original;
const result = { id };

3. 通用提取函数(适合动态字段提取场景)

如果需要经常做这类字段提取操作,可以写一个通用的类型安全的pick函数:

/**
 * 从对象中提取指定的字段,返回新对象
 * @param obj 原始对象
 * @param keys 要保留的字段数组
 */
function pick<T extends object, K extends keyof T>(obj: T, keys: K[]): Pick<T, K> {
  return keys.reduce((result, currentKey) => {
    if (Object.prototype.hasOwnProperty.call(obj, currentKey)) {
      result[currentKey] = obj[currentKey];
    }
    return result;
  }, {} as Pick<T, K>);
}

// 调用示例
const original = {
  "id": "Test",
  "firstname": "Test",
  "lastname": "Test",
  "age": 83
};
const result = pick(original, ['id']);

上面的泛型实现可以保证TS类型安全,返回的对象类型会自动匹配你选择的字段。

内容的提问来源于stack exchange,提问作者markWanka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:36:04