diff --git a/typescript/core/base.ts b/typescript/core/base.ts index f101755b7..63d82913f 100644 --- a/typescript/core/base.ts +++ b/typescript/core/base.ts @@ -261,6 +261,10 @@ export interface _base { isWindow: (obj: any) => obj is Window; + deepClone: (obj: T) => T; + + deepExtend: merge['deepExtend']; + isDeepMatch: (object: any, attrs: any) => boolean; contains: (obj: any[], target: any, fromIndex?: number) => boolean; @@ -373,3 +377,17 @@ export interface _base { getTime: (...args: any[]) => number; } + +type merge = { + deepExtend(object: TObject, source: TSource): TObject & TSource; + + deepExtend(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2; + + deepExtend(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2; + + deepExtend(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3; + + deepExtend(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4; + + deepExtend(object: any, ...otherArgs: any[]): any; +}