diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/global.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/global.js
index 4c1d8af7b8..9b7cc359ef 100644
--- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/global.js
+++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/global.js
@@ -101,5 +101,13 @@ export const global_visitors = {
return b.call(b.thunk(b.block(statements)));
}
}
+ },
+ // @ts-expect-error
+ TSAsExpression(node, context) {
+ return context.visit(node.expression);
+ },
+ // @ts-expect-error
+ TSNonNullExpression(node, context) {
+ return context.visit(node.expression);
}
};
diff --git a/packages/svelte/tests/runtime-runes/samples/typescript-in-event-handler/_config.js b/packages/svelte/tests/runtime-runes/samples/typescript-in-event-handler/_config.js
new file mode 100644
index 0000000000..2115ae298a
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/typescript-in-event-handler/_config.js
@@ -0,0 +1,11 @@
+import { test } from '../../test';
+
+export default test({
+ html: '',
+
+ async test({ assert, target }) {
+ const btn = target.querySelector('button');
+ await btn?.click();
+ assert.htmlEqual(target.innerHTML, ``);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/typescript-in-event-handler/main.svelte b/packages/svelte/tests/runtime-runes/samples/typescript-in-event-handler/main.svelte
new file mode 100644
index 0000000000..80a7c879ec
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/typescript-in-event-handler/main.svelte
@@ -0,0 +1,10 @@
+
+
+