0

我在我使用 vue-cli 创建的 vue.js 项目中安装了一个包,并且我正在使用 typescript。该软件包用于 google 的社交身份验证。https://www.npmjs.com/package/vue-google-oauth2

现在,当我在 main.ts 文件中导入包时,它会给出如下错误:

找不到模块“vue-google-oauth2”的声明文件。隐含地具有“任何”类型。

尝试npm install @types/vue-google-oauth2它是否存在或添加一个新的声明 (.d.ts) 文件,其中包含declare module 'vue-google-oauth2';

我只需declare module 'vue-google-oauth2';在我的 shims.d.ts 文件中添加该行即可消除该错误。但是,既然这个问题已经解决,即使应用程序运行良好,我的终端仍然会出现另一个错误。新的错误如下:

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

基本上我正在使用 this.$gAuth ,即使它正在工作,终端仍然说它在我的 vue 实例中不存在。我怎样才能让这个错误消失?

4

1 回答 1

1

我不确定如何vue-google-oauth2工作,但我认为它添加了全局 mixin 和 getter $gAuth。在这种情况下,您有 2 个选项:

声明类型$gAuth

declare module 'vue/types/vue' {

    interface Vue {
        $gAuth: any; // or specify gAuth type if .d.ts is provided
    }
}

或者使用对象键语法:

this['$gAuth']() // or w/e you use to call it
于 2019-04-08T16:54:33.527 回答