diff --git a/packages/svelte2tsx/src/svelte2tsx/processModuleScriptTag.ts b/packages/svelte2tsx/src/svelte2tsx/processModuleScriptTag.ts index bfd9e1417..ee3df17f9 100644 --- a/packages/svelte2tsx/src/svelte2tsx/processModuleScriptTag.ts +++ b/packages/svelte2tsx/src/svelte2tsx/processModuleScriptTag.ts @@ -2,6 +2,7 @@ import MagicString from 'magic-string'; import { Node } from 'estree-walker'; import ts from 'typescript'; import { ImplicitStoreValues } from './nodes/ImplicitStoreValues'; +import { handleTypeAssertion } from './nodes/handleTypeAssertion'; export function processModuleScriptTag( str: MagicString, @@ -47,6 +48,10 @@ function resolveImplicitStores( implicitStoreValues.addImportStatement(node); } + if (ts.isTypeAssertionExpression?.(node)) { + handleTypeAssertion(str, node, astOffset); + } + ts.forEachChild(node, (n) => walk(n)); }; diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/ts-type-assertion/expected.tsx b/packages/svelte2tsx/test/svelte2tsx/samples/ts-type-assertion/expected.tsx index 1853e99e1..e4e510d8f 100644 --- a/packages/svelte2tsx/test/svelte2tsx/samples/ts-type-assertion/expected.tsx +++ b/packages/svelte2tsx/test/svelte2tsx/samples/ts-type-assertion/expected.tsx @@ -1,9 +1,13 @@ /// -<>;function render() { +<>; + let a = '' as string; +;<>;function render() { let a = document.querySelector('#id') as HTMLInputElement; ; -() => (<>); +() => (<> + +); return { props: {}, slots: {}, getters: {}, events: {} }} export default class Input__SvelteComponent_ extends createSvelte2TsxComponent(__sveltets_partial_ts(__sveltets_with_any_event(render))) { diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/ts-type-assertion/input.svelte b/packages/svelte2tsx/test/svelte2tsx/samples/ts-type-assertion/input.svelte index 01d77b6a3..4cab6f347 100644 --- a/packages/svelte2tsx/test/svelte2tsx/samples/ts-type-assertion/input.svelte +++ b/packages/svelte2tsx/test/svelte2tsx/samples/ts-type-assertion/input.svelte @@ -1,3 +1,7 @@ - + +