From d5370f23d3d34f15078ccc8d72b80eea0617f173 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Sun, 14 Nov 2021 15:15:28 +0100 Subject: [PATCH] [fix] more specific return type for crossfade (#6927) People with "noUncheckedIndexedAccess" set to true in their tsconfig would get false errors when accessing the return type because without this specific tuple typing, TS infers the return type as being an array of functions, not a tuple of functions. Fixes #6926 --- CHANGELOG.md | 1 + src/runtime/transition/index.ts | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be41b229dd..1c4a4ab92e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Unreleased * Fix overly restrictive preprocessor types ([#6904](https://github.com/sveltejs/svelte/pull/6904)) +* More specific typing for crossfade function - returns a tuple, not an array ([#6926](https://github.com/sveltejs/svelte/issues/6926)) ## 3.44.1 diff --git a/src/runtime/transition/index.ts b/src/runtime/transition/index.ts index 8f5a9521b6..9315cd77d5 100644 --- a/src/runtime/transition/index.ts +++ b/src/runtime/transition/index.ts @@ -212,7 +212,20 @@ type ClientRectMap = Map; export function crossfade({ fallback, ...defaults }: CrossfadeParams & { fallback?: (node: Element, params: CrossfadeParams, intro: boolean) => TransitionConfig; -}) { +}): [ + ( + node: Element, + params: CrossfadeParams & { + key: any; + } + ) => () => TransitionConfig, + ( + node: Element, + params: CrossfadeParams & { + key: any; + } + ) => () => TransitionConfig +] { const to_receive: ClientRectMap = new Map(); const to_send: ClientRectMap = new Map();