ts-gems 2.7.6 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/deep-omit.d.ts +18 -0
  2. package/package.json +1 -1
@@ -75,3 +75,21 @@ type _HighDeepOmitWritable<T, K extends keyof T = Exclude<keyof T, WritableKeys<
75
75
  T extends (infer U)[] ? HighDeepOmitWritable<U>[]
76
76
  : IfNoDeepValue<T> extends true ? T
77
77
  : OmitNever<{ readonly [P in K]: HighDeepOmitWritable<T[P]> }>
78
+
79
+ /**
80
+ * Omit all "never" and "undefined" properties in T deeply
81
+ */
82
+ export type DeepOmitNever<T> = _DeepOmitNever<Exclude<T, undefined>>
83
+ type _DeepOmitNever<T> =
84
+ IfNoDeepValue<T> extends true ? T
85
+ : { [P in keyof T as (Exclude<T[P], undefined> extends never ? never : P)]: DeepOmitNever<T[P]> }
86
+
87
+
88
+ /**
89
+ * Omit all "never" and "undefined" properties in T deeply including arrays
90
+ */
91
+ export type HighDeepOmitNever<T> = _HighDeepOmitNever<Exclude<T, undefined>>
92
+ type _HighDeepOmitNever<T> =
93
+ T extends (infer U)[] ? HighDeepOmitNever<U>[]
94
+ : IfNoDeepValue<T> extends true ? T
95
+ : { [P in keyof T as (Exclude<T[P], undefined> extends never ? never : P)]: HighDeepOmitNever<T[P]> }
package/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  "lodash",
13
13
  "underscore"
14
14
  ],
15
- "version": "2.7.6",
15
+ "version": "2.8.0",
16
16
  "types": "lib/index.d.ts",
17
17
  "main": "lib/index.js",
18
18
  "module": "lib/index.js",