From 50a79584cb12129b3db1ef3e0eb9d0c8b9f20b62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 30 May 2019 14:59:30 +0200 Subject: chore: Implement strict mode (denoland/deno_std#453) Original: https://github.com/denoland/deno_std/commit/be24677d15494e83eea2e99bfc5ccfdde31cb892 --- util/async.ts | 2 +- util/deep_assign.ts | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'util') 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(): Deferred { methods = { resolve, reject }; } ); - return Object.assign(promise, methods) as Deferred; + return Object.assign(promise, methods)! as Deferred; } interface TaggedYieldedValue { 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, + ...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, value!); } ); } -- cgit v1.2.3