typescript - 如何在生成的查询类型中为嵌套的“可能”指定类型?
问题描述
我使用 Graphql codegen 从我们的模式生成类型。我需要访问嵌套类型并常用以下方法:
type Iresponse = myType[level1][level2]
当没有 Maybes 时,这很有效,这意味着它有可能为空。当类型被定义为“可能”时,我无法使用它并且它会引发错误。
有没有人有一个实用的解决方案来指定这些嵌套类型?我不想将每一步都包装在许多非可空泛型中......
先感谢您 !
解决方案
任意深度:
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"]>