Vue.js 属性不存在于类型';默认值';

Vue.js 属性不存在于类型';默认值';,vue.js,Vue.js,我是VueJS的初学者,我试着四处寻找一些关于这方面的提示,但什么也找不到 我正在维护一个Vue应用程序,并开始实施Google SSO登录流。我过去经常这样做 因此,在我的main.ts中,我执行以下操作: Vue.use(GAuth, { clientId: "client_id", scope: "profile email", prompt: "select_account" }); 在我的登录组件中,我有: export default class extends Vue

我是VueJS的初学者,我试着四处寻找一些关于这方面的提示,但什么也找不到

我正在维护一个Vue应用程序,并开始实施Google SSO登录流。我过去经常这样做

因此,在我的
main.ts
中,我执行以下操作:

Vue.use(GAuth, {
  clientId: "client_id",
  scope: "profile email",
  prompt: "select_account"
});
在我的登录组件中,我有:

export default class extends Vue {
  private googleHandleClick() {
    this.$gAuth.signIn()
      .then(GoogleUser => {
        this.isSignIn = this.$gAuth.isAuthorized
      })
      .catch(error  => {
        //on fail do something
      })
  }
}
但是,我在
this.$gAuth
上得到一个生成错误,该错误声明如下:

类型“default”上不存在属性“$gAuth”

代码在运行时工作,这表明
$gAuth
确实存在,但由于某种原因,类型检查在构建时出错,这会中断CI和其他事情

基本上,问题是:如何让Vue的
this
知道该属性存在,以及它的类型,您可以在Vue论坛上查看。答复说:

您或其他插件通过添加$gAuth属性来增强Vue原型

当然,Vue的默认类型不包括此属性,因此如果插件作者或您自己不做任何其他调整,Typescript将抱怨Vue的类型没有名为$gAuth的属性

它链接到,其中显示了以下示例(少数示例之一):

例如,要声明类型为string的实例属性$myProperty,请执行以下操作:

//1。在声明扩充类型之前,请确保导入“vue”
从“Vue”导入Vue
// 2. 指定一个包含要扩充的类型的文件
//Vue在types/Vue.d.ts中具有构造函数类型
声明模块“vue/types/vue”{
//3.声明Vue的增强
接口Vue{
$myProperty:string
}
}