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 {