Vue扩充类型-类型上不存在XYZ

时间:2018-09-13 09:39:21

标签: typescript vue.js vuejs2 vue-component

我正在将vue类组件与Typescript一起使用,我需要增加类型以使用第三方模块。

组件

export default class TestComponent extends Vue  {

   private created() {
     this.$snotify.success('test')
   }
}

shims.d.ts

import Vue from 'vue'
import { Snotify } from 'vue-snotify'

declare module 'vue/types/vue' {
    interface VueConstructor {
      $snotify: Snotify
    }
  }

“属性$ snotify在TestComponent类型上不存在”

Vue。$ snotify存在,但是即使扩展了Vue,此this。$ snotify也不会

我要去哪里错了?

2 个答案:

答案 0 :(得分:1)

尝试增强Vue类型而不是VueConstructor

declare module 'vue/types/vue' {
  interface Vue {
    $snotify: Snotify
  }
}

答案 1 :(得分:0)

接受的答案似乎并没有实际起作用,而是在a related vue-snotify GitHub issue上查看@RomainLanz的答案:

import Vue from 'vue'
import { SnotifyService } from 'vue-snotify/SnotifyService'

declare module 'vue/types/vue' {
  interface Vue {
    $snotify: SnotifyService
  }
}

在此处添加此答案,因为这是搜索相同内容时出现的页面之一。