我是VueJS的初学者,我试图四处寻找有关此问题的提示,但找不到任何东西。
我正在维护Vue应用程序,并且开始实施Google SSO登录流程。为此,我使用了vue-google-oauth2
因此,在我的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
知道该属性存在以及它的类型
答案 0 :(得分:1)
您可以在Vue论坛上查看this discussion。答案指出:
您或其他一些插件通过添加$ gAuth属性来增强Vue原型。
当然,Vue的默认类型不包含此属性,因此,如果插件作者或您自己未作任何其他调整,Typescript就会抱怨Vue的类型没有名为$ gAuth的属性。 / p>
它链接到docs,它显示了此示例(几个示例之一):
例如,要声明类型为string的实例属性$ myProperty:
duplicateClientNameValidator