Search code examples
typescriptvue.jsvue-componentvuejs3vue-class-components

Vue 3 Typescript Class Component - Type 'typeof import(.../node_modules/vue/dist/vue")' is not a constructor function type


Hi I'm using Vue 3 with Typescript and Class Components. I just copy-pasted the example from the docs but it looks like there is an issue with Typescript:

TS1238: Unable to resolve signature of class decorator when called as an expression.
  This expression is not callable.
    Type 'typeof import(".../node_modules/vue-class-component/dist/vue-class-component")' has no call signatures.

TS2507: Type 'typeof import(".../node_modules/vue/dist/vue")' is not a constructor function type.

The docs: https://class-component.vuejs.org/guide/class-component.html

Does anybody know what is missing? Thanks!

The Error


Solution

  • Based on this issue there's no need to that decorator and the imports are different for the version 3

    <template>
      <div>{{ message }}</div> 
    </template>
    
    <script lang="ts">
    import { Vue } from 'vue-class-component'
    
    export default class HelloWorld extends Vue {
      message="Hello World"
    }
    </script>