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

如何在TypeScript中将普通字符串转换为Record<string, string>类型

将键值对字符串转换为Record<string, string>

你可以通过分割字符串 + 累加生成对象的方式实现这个需求,以下是具体的TypeScript代码实现:

const myStr = "key1=value1,key2=value2";

function strToRecord(str: string): Record<string, string> {
  // 按逗号分割成单个键值对字符串
  return str.split(',').reduce((result, keyValuePair) => {
    // 按等号分割键和值
    const [key, value] = keyValuePair.split('=');
    // 处理可能的空格,同时过滤无效的键值对
    if (key && value) {
      result[key.trim()] = value.trim();
    }
    return result;
  }, {} as Record<string, string>); // 指定初始值的类型为Record<string, string>
}

// 调用函数得到目标对象
const myRecord = strToRecord(myStr);
console.log(myRecord); // 输出: { key1: "value1", key2: "value2" }

代码说明:

  • split(','):将原始字符串按逗号分割,得到["key1=value1", "key2=value2"]这样的数组
  • reduce:遍历数组,逐步累加生成目标对象,初始值{} as Record<string, string>用于告诉TypeScript累加器的类型
  • split('='):将每个键值对字符串拆分为键和值两部分
  • trim():处理键或值前后可能存在的空格(如果你的字符串格式严格没有空格,可以省略)
  • 条件判断if (key && value):避免处理无效的键值对(比如空字符串、只有键没有值的情况)

边界情况提示:

  • 如果字符串中有重复的键(比如"key1=value1,key1=value2"),后面的键值对会覆盖前面的,这是JavaScript对象的默认行为
  • 如果原始字符串为空,函数会返回一个空对象

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:30:50