diff options
Diffstat (limited to 'util')
| -rw-r--r-- | util/async.ts | 2 | ||||
| -rw-r--r-- | util/deep_assign.ts | 9 |
2 files changed, 7 insertions, 4 deletions
diff --git a/util/async.ts b/util/async.ts index 15edb1b42..b737c4cc8 100644 --- a/util/async.ts +++ b/util/async.ts @@ -25,7 +25,7 @@ export function deferred<T>(): Deferred<T> { methods = { resolve, reject }; } ); - return Object.assign(promise, methods) as Deferred<T>; + return Object.assign(promise, methods)! as Deferred<T>; } interface TaggedYieldedValue<T> { diff --git a/util/deep_assign.ts b/util/deep_assign.ts index 77bf5e9b3..1dfc00a5b 100644 --- a/util/deep_assign.ts +++ b/util/deep_assign.ts @@ -1,12 +1,15 @@ // Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. -export function deepAssign(target: object, ...sources: object[]): object { +export function deepAssign( + target: Record<string, unknown>, + ...sources: object[] +): 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]): void => { + ([key, value]: [string, unknown]): void => { if (value instanceof Date) { target[key] = new Date(value); return; @@ -22,7 +25,7 @@ export function deepAssign(target: object, ...sources: object[]): object { if (typeof target[key] !== `object` || !target[key]) { target[key] = {}; } - deepAssign(target[key], value); + deepAssign(target[key] as Record<string, unknown>, value!); } ); } |
