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

如何将TypeScript对象类型的键转换为逗号分隔字符串类型?

实现TypeScript对象类型到键的逗号分隔字符串类型转换

当然可以实现这个需求。下面是GetObjKeys类型的具体实现方案:

type Obj = {
  val1: string;
  val2: string;
  val3: string;
};

// 核心类型实现
type Join<T extends string[], Separator extends string> = T extends [infer First extends string, ...infer Rest extends string[]]
  ? Rest extends []
    ? First
    : `${First}${Separator}${Join<Rest, Separator>}`
  : '';

type GetObjKeys<T extends object> = Join<Array<keyof T>, ','>;

// 测试使用
type ObjKeys = GetObjKeys<Obj>;
// 类型结果:'val1,val2,val3'

实现说明:

  • Join类型:递归处理字符串数组类型,将其用指定分隔符拼接为单个字符串类型。通过条件类型提取数组首个元素,递归拼接剩余元素,直到数组为空时终止。
  • GetObjKeys类型:先用keyof T获取对象的键联合类型,再将联合类型转为数组类型(仅类型层面有效),最后通过Join类型以逗号为分隔符完成拼接,得到目标字符串类型。

该方案支持任意键为字符串类型的非空对象,完全适配你在API中间层提升类型安全性的需求——通过强制匹配对象键集合,可有效避免字段拼写错误、遗漏等潜在问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:55:13