From 4fe04705e5864e7741c5b53e2889f1c90aaa2927 Mon Sep 17 00:00:00 2001 From: "Lyu, Wei Da" Date: Sat, 27 Aug 2022 11:29:49 +0800 Subject: [PATCH] (fix) extract name in destructuring with default --- packages/svelte2tsx/src/svelte2tsx/utils/tsAst.ts | 2 ++ .../samples/reactive-declare-destructuring/expected.tsx | 1 + .../samples/reactive-declare-destructuring/expectedv2.ts | 1 + .../samples/reactive-declare-destructuring/input.svelte | 1 + 4 files changed, 5 insertions(+) diff --git a/packages/svelte2tsx/src/svelte2tsx/utils/tsAst.ts b/packages/svelte2tsx/src/svelte2tsx/utils/tsAst.ts index 3cddb0494..f58893dd6 100644 --- a/packages/svelte2tsx/src/svelte2tsx/utils/tsAst.ts +++ b/packages/svelte2tsx/src/svelte2tsx/utils/tsAst.ts @@ -100,6 +100,8 @@ export function extractIdentifiers( extractIdentifiers(element, identifiers); } }); + } else if (ts.isBinaryExpression(node)) { + extractIdentifiers(node.left, identifiers); } return identifiers; diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/expected.tsx b/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/expected.tsx index 00b63b1e7..602a3c799 100644 --- a/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/expected.tsx +++ b/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/expected.tsx @@ -6,6 +6,7 @@ let { b: d } = __sveltets_1_invalidate(() => ({ b: '' })); let { c: { length } } = __sveltets_1_invalidate(() => ({ c: '' })); let { ...e } = __sveltets_1_invalidate(() => ({ f: ''})); let { f } = __sveltets_1_invalidate(() => ({ f: ''})); +let { b: g = 1} = __sveltets_1_invalidate(() => ({ b: 1 })); ; () => (<>); return { props: {}, slots: {}, getters: {}, events: {} }} diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/expectedv2.ts b/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/expectedv2.ts index a17d7d467..ecad409cb 100644 --- a/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/expectedv2.ts +++ b/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/expectedv2.ts @@ -6,6 +6,7 @@ let { b: d } = __sveltets_1_invalidate(() => ({ b: '' })); let { c: { length } } = __sveltets_1_invalidate(() => ({ c: '' })); let { ...e } = __sveltets_1_invalidate(() => ({ f: ''})); let { f } = __sveltets_1_invalidate(() => ({ f: ''})); +let { b: g = 1} = __sveltets_1_invalidate(() => ({ b: 1 })); ; async () => {}; return { props: {}, slots: {}, getters: {}, events: {} }} diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/input.svelte b/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/input.svelte index 14e4ee604..d42a5693e 100644 --- a/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/input.svelte +++ b/packages/svelte2tsx/test/svelte2tsx/samples/reactive-declare-destructuring/input.svelte @@ -4,4 +4,5 @@ $: ({ b: d } = { b: '' }); $: ({ c: { length } } = { c: '' }); $: ({ ...e } = { f: ''}); $: ( { f } = { f: ''} ); +$: ({ b: g = 1} = { b: 1 });