相关疑难解决方法(0)

如何递归地从类型中省略键

我想编写一个递归省略字段的类型实用程序。你会这样命名和使用的东西OmitRecursively<SomeType, 'keyToOmit'>

我尝试使用映射类型 + 条件类型来完成它,但是当所有必需的字段都正确输入时我坚持了这种情况(因此字段从嵌套类型中消失了),但是该方法忽略了可选字段。

// This is for one function that removes recursively __typename field 
// that Appolo client adds
type Deapolify<T extends { __typename: string }> = Omit<
  { [P in keyof T]: T[P] extends { __typename: string } ? Deapolify<T[P]> : T[P] },
  '__typename'
>

// Or more generic attempt

type OmitRecursively<T extends any, K extends keyof T> = Omit<
  { [P in keyof T]: T[P] extends any ? Omit<T[P], K> : never },
  K
> …
Run Code Online (Sandbox Code Playgroud)

recursion types typescript

4
推荐指数
1
解决办法
1745
查看次数

标签 统计

recursion ×1

types ×1

typescript ×1