# Issues with concrete subclass and abstract superclass during extension import

**URL:** <https://forum.makecode.com/t/issues-with-concrete-subclass-and-abstract-superclass-during-extension-import/30090>\
**Category:** Arcade\
**Tags:** extension\
**Created:** [August 12, 2024, 1:54am UTC](https://forum.makecode.com/t/issues-with-concrete-subclass-and-abstract-superclass-during-extension-import/30090 "2024-08-12T01:54:02Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![chembot](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chembot/32/14245_2.png) [@chembot](https://forum.makecode.com/u/chembot)\
**Post date:** [August 12, 2024, 1:54am UTC](https://forum.makecode.com/t/issues-with-concrete-subclass-and-abstract-superclass-during-extension-import/30090/1 "2024-08-12T01:54:02Z")

</div>

I’ve been making an extension in VSCode, and there are no listed syntax errors. The code looks something like this:

```auto
export abstract class Foo {
    public abstract toString(): string;
}
export class Bar extends Foo {
    public override toString(): string {
        return "foobar";
    } 
}

```

When I import the extension I get hundreds of syntax errors, like " ‘=’ expected ".  
Both the extension project and the test project have the same compilerOptions in their tsconfig.json.

Here’s the [link to the extension github](https://github.com/ch3mbot/pxt-vector-quaternion-matrix-extension). I was mainly looking at `Vector` and `Vector3`.

The extension still has some messy/unused code and formatting issues, but no syntax errors in VSCode. What could be causing this, and is there a different syntax I should be using? Thanks.

---

<div class="post-metadata">

**Author:** ![abuislam](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@abuislam](https://forum.makecode.com/u/abuislam)\
**Post date:** [August 12, 2024, 1:24pm UTC](https://forum.makecode.com/t/issues-with-concrete-subclass-and-abstract-superclass-during-extension-import/30090/2 "2024-08-12T13:24:01Z")

</div>

It might be a TypeScript version mismatch or tsconfig.json issue. Double-check the versions and try cleaning and rebuilding the project.

---

<div class="post-metadata">

**Author:** ![chembot](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chembot/32/14245_2.png) [@chembot](https://forum.makecode.com/u/chembot)\
**Post date:** [August 13, 2024, 1:46am UTC](https://forum.makecode.com/t/issues-with-concrete-subclass-and-abstract-superclass-during-extension-import/30090/3 "2024-08-13T01:46:58Z")

</div>

Tried it with a blank project, with nothing in it but the extension. Same issue happened. I did some more testing and it seems that makecode arcade doesn’t like `override` or `Readonly<T>`.

After further testing, it seems that makecode arcade has issues with abstract classes in general. From other forum posts I found that you can create and use abstract classes, but not abstract methods.
