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

如何从可空嵌套对象中提取Typescript类型(graphql-codegen场景)

提取方法

你可以使用 TypeScript 内置的 NonNullable 工具类型配合索引访问类型实现嵌套类型提取,写法如下:

// 提取得到的类型和你标注的目标tags类型完全一致
type ExtractedTagsType = NonNullable<ManageTeamPageQuery['authedTeam']>['tags'];

逻辑说明

  • ManageTeamPageQuery['authedTeam'] 是直接读取根查询类型上的authedTeam属性原始类型,该类型为可选属性 + Maybe包装,实际为 Team类型 | null | undefined
  • NonNullable<> 会直接排除传入类型中的null和undefined类型,得到 graphql-codegen 生成的完整Team对象类型
  • 最后通过['tags']索引访问Team对象上的tags属性,即可得到你需要的完整tags类型

如果你后续需要进一步提取单个Tag的类型,可以继续向下嵌套处理:

// 提取非空的Tag数组类型
type NonNullTagsArray = NonNullable<ExtractedTagsType>
// 提取单个Tag的完整类型(排除数组和Maybe包装)
type SingleTagType = NonNullable<NonNullable<ExtractedTagsType>[number]>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:00:05