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

TypeScript中{ [key: string]: string }类型在GraphQL中的等效写法是什么

GraphQL中等效TypeScript { [key: string]: string } 类型的实现方案

GraphQL原生没有直接支持动态键的字典类型,针对你的需求可以选择以下两种实现方式:


方案1:自定义标量(最贴合原TS类型效果)

该方案可以直接实现任意字符串为键、值为字符串的字典结构,和你给出的TS类型效果完全一致。

  1. 首先在Schema中定义自定义标量
# 定义键为字符串、值为字符串的字典标量
scalar StringMap
  1. 替换tags字段定义
# schema.gql
scalar StringMap

type App implements Node {
  name: String!
  tags: StringMap!
}

你只需要在服务端的标量解析逻辑中添加校验,限制传入/返回的对象所有值都是字符串类型即可正常使用。


方案2:原生GraphQL结构实现(无需自定义标量)

如果你不想引入自定义标量,可以将键值对拆分为结构化列表实现:

# 定义单个键值对结构
type TagEntry {
  key: String!
  value: String!
}

type App implements Node {
  name: String!
  tags: [TagEntry!]!
}

该方案需要额外做一层数据转换:服务端返回前将字典结构转为[{key: "xxx", value: "yyy"}]格式,客户端拿到数据后再转回字典对象即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:15:03