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
相关产品推荐
相关产品推荐

