summaryrefslogtreecommitdiff
path: root/std/_util/deep_assign.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/_util/deep_assign.ts')
-rw-r--r--std/_util/deep_assign.ts23
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;