From 21dadfc997c5572730e607bd98d513437215dd06 Mon Sep 17 00:00:00 2001 From: Caique Torres <56696506+caiquetorres@users.noreply.github.com> Date: Wed, 12 Feb 2025 14:14:14 -0300 Subject: [PATCH] fix: ignore typescript abstract methods during code transformation (#15267) --- .changeset/short-fireants-talk.md | 5 +++++ .../src/compiler/phases/1-parse/remove_typescript_nodes.js | 6 ++++++ .../tests/runtime-runes/samples/typescript/main.svelte | 5 +++++ 3 files changed, 16 insertions(+) create mode 100644 .changeset/short-fireants-talk.md diff --git a/.changeset/short-fireants-talk.md b/.changeset/short-fireants-talk.md new file mode 100644 index 000000000000..c26bdc9c8ba8 --- /dev/null +++ b/.changeset/short-fireants-talk.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: ignore typescript abstract methods diff --git a/packages/svelte/src/compiler/phases/1-parse/remove_typescript_nodes.js b/packages/svelte/src/compiler/phases/1-parse/remove_typescript_nodes.js index 18c805128dfe..09eb0bfa68c1 100644 --- a/packages/svelte/src/compiler/phases/1-parse/remove_typescript_nodes.js +++ b/packages/svelte/src/compiler/phases/1-parse/remove_typescript_nodes.js @@ -118,6 +118,12 @@ const visitors = { delete node.implements; return context.next(); }, + MethodDefinition(node, context) { + if (node.abstract) { + return b.empty; + } + return context.next(); + }, VariableDeclaration(node, context) { if (node.declare) { return b.empty; diff --git a/packages/svelte/tests/runtime-runes/samples/typescript/main.svelte b/packages/svelte/tests/runtime-runes/samples/typescript/main.svelte index cd23b31096c3..e2942b21f386 100644 --- a/packages/svelte/tests/runtime-runes/samples/typescript/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/typescript/main.svelte @@ -22,6 +22,11 @@ class MyClass implements Hello {} + abstract class MyAbstractClass { + abstract x(): void; + y() {} + } + declare const declared_const: number; declare function declared_fn(): void; declare class declared_class {