首页 > 解决方案 > 如何在生成的查询类型中为嵌套的“可能”指定类型?

问题描述

我使用 Graphql codegen 从我们的模式生成类型。我需要访问嵌套类型并常用以下方法:

 type Iresponse = myType[level1][level2]

当没有 Maybes 时,这很有效,这意味着它有可能为空。当类型被定义为“可能”时,我无法使用它并且它会引发错误。

有没有人有一个实用的解决方案来指定这些嵌套类型?我不想将每一步都包装在许多非可空泛型中......

先感谢您 !

标签: typescriptgraphqltypescript-typingsreact-typescriptgraphql-codegen

解决方案


任意深度:

type Get<T, X> = X extends keyof T ? T[X] : never
type Path<T, P extends any[]> = P extends [infer X, ...infer Y] ? Path<Get<NonNullable<T>, X>, Y> : T

type Iresponse = Path<myType, ["level1", "level2", "response"]>

游乐场链接


推荐阅读