lina666
@lina666
Изучаю веб ЯП.

Как сделать свой плагин для Vue2 если проект на TypeScript?

Здравствуйте, пробую TS + Vue решил попробовать сделать глобальный метод для Vue.
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

Vue.config.productionTip = false
const Plugin = {
  install(Vue: any, options?: any) {
    Vue.prototype.$Kota = function () {
      console.log('Мяу')
    }
  }
}
Vue.use(Plugin)

new Vue({
  router,
  store,
  render: h => h(App),

}).$mount('#app')


Вот сам плагин, при попытке использовать его в другом компоненте IDE выдает ошибку
TS2339: Property '$Kota' does not exist on type 'CombinedVueInstance >>'
Если юзать чисто JS, то все работает прекрасно, тут же я пока не могу понять, что делаю не так, все конфиги стандартные которые ставит Vue cli при создании проекта
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
yarkov
@yarkov Куратор тега Vue.js
Помог ответ? Отметь решением.
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

Vue.config.productionTip = false

declare module 'vue/types/vue' {
  interface Vue {
    $Kota: () => void
  }
}

const Plugin = {
  install(Vue: any, options?: any) {
    Vue.prototype.$Kota = function () {
      console.log('Мяу')
    }
  }
}

Vue.use(Plugin)

new Vue({
  router,
  store,
  render: h => h(App),

}).$mount('#app')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега TypeScript
Crazy on performance...
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы