diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2020-08-25 09:43:54 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-24 19:43:54 -0400 |
commit | c4d5b01acfe0cac31f94743a57e8e619178ba563 (patch) | |
tree | 1987fe2e23c4db59a44159f4c7d21ecc61be4ad3 /std/_util/deep_assign.ts | |
parent | 9b0f9c876529696c8008dda8b3606e34d3fe98dc (diff) |
feat: update to TypeScript 4.0 (#6514)
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; |