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

TypeScript中如何简写JSON响应对应的多同类型字段的类型定义

TypeScript 全字符串值对象类型简写方案

直接在参数位置声明的两种实现方式

1. 内置 Record 工具类型(最简洁)

如果该对象所有键都是字符串类型、所有值都是字符串类型,直接使用 TS 内置的 Record 泛型工具即可:

function myFunction(label: Record<string, string>) {
  // 函数内部逻辑
}

Record<K, V> 是 TS 预置的通用类型,用来描述键类型为 K、值类型为 V 的普通对象,你的场景直接传入两个 string 作为泛型参数就能满足需求,无需提前单独定义类型。

2. 内联索引签名(带必填字段场景适用)

如果有部分字段是必填的、剩下的是任意字符串键值对,可以在内联类型里组合固定字段和索引签名:

// 示例:要求必须包含 id1 字段,其余字段任意,只要值为字符串即可
function myFunction(label: { id1: string; [key: string]: string }) {
  // 函数内部逻辑
}

补充说明

如果这个类型会在多个地方复用,还是建议单独抽离声明,避免重复编码:

// 可复用版本
export type LabelResponse = Record<string, string>
// 带必填字段的可复用版本
export type LabelResponseWithId = { id1: string; [key: string]: string }

function myFunction(label: LabelResponse) {}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:06:03