【问题标题】:Vue-Resource + Typescript: Property 'http' does not exist on type 'VueConstructor<Vue>'Vue-Resource + Typescript:“VueConstructor<Vue>”类型上不存在属性“http”
【发布时间】:2019-07-16 12:54:19
【问题描述】:

我正在一个使用 vue-resource 的 Vue 项目中使用 Typescript。该项目运行良好,但我收到打字稿编译器错误。

请注意,我可以在我的组件中使用 this.$http 的模块。

我检查了thisthisthis 的答案,但这些都没有帮助。有解决办法吗?或者有没有办法使用 Typescript 在 Vue-Resource 中设置全局选项?或者完全忽略错误的方法?

[编辑] 解决方法(也作为我的答案附上):

@Styx 评论中的一种解决方法(Github 解决方案非常hacky,因为我避免手动修改vue-resource/types/vue.d.ts),无论如何都在这里提到。

使用泛型并将 Vue 类型转换为任何类型,例如 &lt;any&gt;Vue.http。但是,这可能会导致 tslint 警告,因此我通过使用 (Vue as any) 解决了这个问题,然后访问 (Vue as any).http

【问题讨论】:

标签: typescript vue.js vue-resource


【解决方案1】:

我认为您需要在 main.ts 所在的位置添加一个名为“http.d.ts”的新定义文件以及以下内容:

import Vue from 'vue';

declare module 'vue/types/vue' {
  interface VueConstructor {
    http: any;
  }
}

这应该可以解决错误。

【讨论】:

    【解决方案2】:

    从 cmets,我得到了this 链接。你可以通读一下,这里有一个解决方法:

    使用泛型并将 Vue 类型转换为任何类型,例如 &lt;any&gt;Vue.http。但是,这可能会导致 tslint 警告,因此我通过使用 (Vue as any) 解决了这个问题,然后访问 (Vue as any).http

    【讨论】:

    • 这对我不起作用,请求从未发布过。
    猜你喜欢
    • 2019-03-07
    • 1970-01-01
    • 2020-12-18
    • 2021-12-17
    • 2022-01-07
    • 2021-09-22
    • 2020-12-11
    • 2023-01-03
    • 2020-10-30
    相关资源
    最近更新 更多