diff options
Diffstat (limited to 'std/_util/deep_assign.ts')
-rw-r--r-- | std/_util/deep_assign.ts | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/std/_util/deep_assign.ts b/std/_util/deep_assign.ts index ca1f0aba1..43606daa3 100644 --- a/std/_util/deep_assign.ts +++ b/std/_util/deep_assign.ts @@ -1,16 +1,31 @@ // Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. import { assert } from "../_util/assert.ts"; +export function deepAssign<T, U>(target: T, source: U): T & U; +export function deepAssign<T, U, V>( + target: T, + source1: U, + source2: V, +): T & U & V; +export function deepAssign<T, U, V, W>( + target: T, + source1: U, + source2: V, + source3: W, +): T & U & V & W; export function deepAssign( - target: Record<string, unknown>, - ...sources: object[] -): object | undefined { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + target: Record<string, any>, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ...sources: any[] +): // eslint-disable-next-line @typescript-eslint/ban-types +object | undefined { for (let i = 0; i < sources.length; i++) { const source = sources[i]; if (!source || typeof source !== `object`) { return; } - Object.entries(source).forEach(([key, value]: [string, unknown]): void => { + Object.entries(source).forEach(([key, value]): void => { if (value instanceof Date) { target[key] = new Date(value); return; |