Skip to content

Commit 9613233

Browse files
authored
type assertion in module script (#966)
1 parent 4cd5d58 commit 9613233

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

packages/svelte2tsx/src/svelte2tsx/processModuleScriptTag.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import MagicString from 'magic-string';
22
import { Node } from 'estree-walker';
33
import ts from 'typescript';
44
import { ImplicitStoreValues } from './nodes/ImplicitStoreValues';
5+
import { handleTypeAssertion } from './nodes/handleTypeAssertion';
56

67
export function processModuleScriptTag(
78
str: MagicString,
@@ -47,6 +48,10 @@ function resolveImplicitStores(
4748
implicitStoreValues.addImportStatement(node);
4849
}
4950

51+
if (ts.isTypeAssertionExpression?.(node)) {
52+
handleTypeAssertion(str, node, astOffset);
53+
}
54+
5055
ts.forEachChild(node, (n) => walk(n));
5156
};
5257

packages/svelte2tsx/test/svelte2tsx/samples/ts-type-assertion/expected.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
///<reference types="svelte" />
2-
<></>;function render() {
2+
<></>;
3+
let a = '' as string;
4+
;<></>;function render() {
35

46
let a = document.querySelector('#id') as HTMLInputElement;
57
;
6-
() => (<></>);
8+
() => (<>
9+
10+
</>);
711
return { props: {}, slots: {}, getters: {}, events: {} }}
812

913
export default class Input__SvelteComponent_ extends createSvelte2TsxComponent(__sveltets_partial_ts(__sveltets_with_any_event(render))) {
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1-
<script>
1+
<script lang="ts" context="module">
2+
let a = <string>'';
3+
</script>
4+
5+
<script lang="ts" >
26
let a = <HTMLInputElement>document.querySelector('#id');
37
</script>

0 commit comments

Comments
 (0)