vue-cli3 + ts 通过Vue.prototype绑定的属性方法,能够调用到,但是编译报错

发布于 2022-09-11 21:38:40 字数 737 浏览 15 评论 0

//main.ts 里面

import * as api from '@/api' //接口方法
Vue.prototype.$api = api
App.vue 里面

<template>
  <div id="app">
    <router-view />
  </div>
</template>

<script lang="ts">
import { Vue, Component } from 'vue-property-decorator'
@Component
export default class App extends Vue {
  public created() {
    this.$api.getUserInfo().then(res => {
      console.log(res, 'res')
    }).catch(err => {
      console.log(err, 'err')
    })
  }
  public mounted() {}
}
</script>

我在App.vue里面调用this.$api.xxx能够正常调用到api里面的方法,但是编译的时候会报错警告
Property '$api' does not exist on type 'App'.
请问这个怎么回事啊?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光瘦了 2022-09-18 21:38:40

vue文档上有

// 1. 确保在声明补充的类型之前导入 'vue'
import Vue from 'vue'

// 2. 定制一个文件,设置你想要补充的类型
//    在 types/vue.d.ts 里 Vue 有构造函数类型
declare module 'vue/types/vue' {
// 3. 声明为 Vue 补充的东西
  interface Vue {
    $myProperty: string
  }
}
小红帽 2022-09-18 21:38:40
import Vue from 'vue'

declare module 'vue/types/vue' {
  interface Vue {
    $api: any
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文