From 71b02c97de8ee9b8a9e5c904d501965fb9dfe13c Mon Sep 17 00:00:00 2001 From: Jakob Schnitzer Date: Mon, 10 Aug 2020 17:24:27 +0200 Subject: [PATCH] (fix) awaited type of promise or plain value When awaiting the value of a type like Promise | null, the type wouldn't match PromiseLike. Hence the awaited value would still be Promise | null and not string | null. Reducing it to one type declaration and using a conditional type to infer the awaited type should do the trick. --- packages/svelte2tsx/svelte-shims.d.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/svelte2tsx/svelte-shims.d.ts b/packages/svelte2tsx/svelte-shims.d.ts index b94d2c829..8198df2de 100644 --- a/packages/svelte2tsx/svelte-shims.d.ts +++ b/packages/svelte2tsx/svelte-shims.d.ts @@ -154,15 +154,10 @@ declare function __sveltets_unionType(t1: T1, t2: T2, t3: T3): T1 | declare function __sveltets_unionType(t1: T1, t2: T2, t3: T3, t4: T4): T1 | T2 | T3 | T4; declare function __sveltets_unionType(...types: any[]): any; -declare function __sveltets_awaitThen( - promise: PromiseLike, - onfulfilled: (value: T) => any, - onrejected?: (value: any) => any -): any; declare function __sveltets_awaitThen( promise: T, - onfulfilled: (value: T) => any, - onrejected?: (value: never) => any + onfulfilled: (value: T extends PromiseLike ? U : T) => any, + onrejected?: (value: T extends PromiseLike ? any : never) => any ): any; declare function __sveltets_each(