@@ -10,7 +10,10 @@ import {
1010} from 'ts-gems' ;
1111import { merge } from './merge.js' ;
1212
13- export function omit < T , K extends keyof T > ( obj : T , keys : K [ ] ) : Omit < T , K > {
13+ export function omit < T extends object , K extends keyof T > (
14+ obj : T ,
15+ keys : K [ ] ,
16+ ) : Omit < T , K > {
1417 const keysSet = new Set < any > ( keys ) ;
1518 return merge ( { } , obj , {
1619 deep : false ,
@@ -20,23 +23,44 @@ export function omit<T, K extends keyof T>(obj: T, keys: K[]): Omit<T, K> {
2023 } ) ;
2124}
2225
23- export function omitUndefined < T > ( obj : T , deep : true ) : DeepOmitUndefined < T > ;
24- export function omitUndefined < T > ( obj : T , deep : 'full' ) : DeeperOmitUndefined < T > ;
25- export function omitUndefined < T > ( obj : T , deep : false ) : OmitUndefined < T > ;
26- export function omitUndefined < T > ( obj : T ) : OmitUndefined < T > ;
27- export function omitUndefined < T > ( obj : T , deep ?: boolean | 'full' ) {
26+ export function omitUndefined < T extends object > (
27+ obj : T ,
28+ deep : true ,
29+ ) : DeepOmitUndefined < T > ;
30+ export function omitUndefined < T extends object > (
31+ obj : T ,
32+ deep : 'full' ,
33+ ) : DeeperOmitUndefined < T > ;
34+ export function omitUndefined < T extends object > (
35+ obj : T ,
36+ deep : false ,
37+ ) : OmitUndefined < T > ;
38+ export function omitUndefined < T extends object > ( obj : T ) : OmitUndefined < T > ;
39+ export function omitUndefined < T extends object > (
40+ obj : T ,
41+ deep ?: boolean | 'full' ,
42+ ) {
2843 return merge ( { } , obj , {
2944 deep,
3045 ignoreUndefined : true ,
3146 copyDescriptors : true ,
3247 } ) ;
3348}
3449
35- export function omitNull < T > ( obj : T , deep : true ) : DeepOmitTypes < T , null > ;
36- export function omitNull < T > ( obj : T , deep : 'full' ) : DeeperUnNullish < T > ;
37- export function omitNull < T > ( obj : T , deep : false ) : OmitTypes < T , null > ;
38- export function omitNull < T > ( obj : T ) : OmitTypes < T , null > ;
39- export function omitNull < T > ( obj : T , deep ?: boolean | 'full' ) {
50+ export function omitNull < T extends object > (
51+ obj : T ,
52+ deep : true ,
53+ ) : DeepOmitTypes < T , null > ;
54+ export function omitNull < T extends object > (
55+ obj : T ,
56+ deep : 'full' ,
57+ ) : DeeperUnNullish < T > ;
58+ export function omitNull < T extends object > (
59+ obj : T ,
60+ deep : false ,
61+ ) : OmitTypes < T , null > ;
62+ export function omitNull < T extends object > ( obj : T ) : OmitTypes < T , null > ;
63+ export function omitNull < T extends object > ( obj : T , deep ?: boolean | 'full' ) {
4064 return merge ( { } , obj , {
4165 deep,
4266 ignoreNulls : true ,
@@ -45,11 +69,20 @@ export function omitNull<T>(obj: T, deep?: boolean | 'full') {
4569 } ) ;
4670}
4771
48- export function omitNullish < T > ( obj : T , deep : true ) : DeepUnNullish < T > ;
49- export function omitNullish < T > ( obj : T , deep : 'full' ) : DeeperUnNullish < T > ;
50- export function omitNullish < T > ( obj : T , deep : false ) : UnNullish < T > ;
51- export function omitNullish < T > ( obj : T ) : UnNullish < T > ;
52- export function omitNullish < T > ( obj : T , deep ?: boolean | 'full' ) {
72+ export function omitNullish < T extends object > (
73+ obj : T ,
74+ deep : true ,
75+ ) : DeepUnNullish < T > ;
76+ export function omitNullish < T extends object > (
77+ obj : T ,
78+ deep : 'full' ,
79+ ) : DeeperUnNullish < T > ;
80+ export function omitNullish < T extends object > (
81+ obj : T ,
82+ deep : false ,
83+ ) : UnNullish < T > ;
84+ export function omitNullish < T extends object > ( obj : T ) : UnNullish < T > ;
85+ export function omitNullish < T extends object > ( obj : T , deep ?: boolean | 'full' ) {
5386 return merge ( { } , obj , {
5487 deep,
5588 ignoreNulls : true ,
0 commit comments