Vue.js 属性不存在于类型';默认值';
我是VueJS的初学者,我试着四处寻找一些关于这方面的提示,但什么也找不到 我正在维护一个Vue应用程序,并开始实施Google SSO登录流。我过去经常这样做 因此,在我的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
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
}
}