summaryrefslogtreecommitdiff
path: root/std/_util/deep_assign.ts
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2020-08-25 09:43:54 +1000
committerGitHub <noreply@github.com>2020-08-24 19:43:54 -0400
commitc4d5b01acfe0cac31f94743a57e8e619178ba563 (patch)
tree1987fe2e23c4db59a44159f4c7d21ecc61be4ad3 /std/_util/deep_assign.ts
parent9b0f9c876529696c8008dda8b3606e34d3fe98dc (diff)
feat: update to TypeScript 4.0 (#6514)
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;