代码之家  ›  专栏  ›  技术社区  ›  Axel Stone

无法在vue中使用属性decorator@Prop

  •  0
  • Axel Stone  · 技术社区  · 7 年前

    我在Vue 2中有一个组件:

    import Vue from 'vue';
    import Component from 'vue-class-component';
    import Prop from 'vue-property-decorator';
    
    @Component({
      template: require('./template.html'),
    })
    
    export class SuklTableApprComponent extends Vue {
    
      @Prop() 
      type: any;
    
      @Prop()
      data: any;
    
      mounted() {}
    
    }
    

    我正在按照文档中的说明进行操作,但typescript不允许我使用@Prop decorator。它抛出一个错误:

    TS2349:无法调用其类型缺少调用签名的表达式。类型“typeof”/home/tomasturan/programming/sukl/reg-dis-forms-v2/node\u modules/vue property decorator/li…“没有兼容的调用签名。

    为什么会这样?我有一个Similar项目,其中所有的配置似乎都是一样的,并且可以正常工作。为什么会抛出这个错误?

    1 回复  |  直到 7 年前
        1
  •  5
  •   Titian Cernicova-Dragomir    7 年前

    我想问题出在你的进口声明上。

    import Vue from 'vue';
    import Component from 'vue-class-component';
    import { Prop } from 'vue-property-decorator'; // no default import, used { Prop } to import the decorator
    
    @Component({
      template: require('./template.html'),
    })
    export class SuklTableApprComponent extends Vue {
    
      @Prop()
      type: any;
      @Prop()
      data: any;
      mounted() { }
    
    }