我正在使用vue-resource的Vue项目中使用Typescript。该项目运行正常,但出现打字稿编译器错误。
请注意,我可以在组件中使用this.$http
来使用该模块。
我检查了this,this和this的答案,但没有一个有帮助。有没有解决的办法?还是有一种方法可以使用Typescript在Vue-Resource中设置全局选项?还是完全忽略该错误的方法?
[编辑]解决方法(也附在我的答案中):
@Styx的评论中的一种解决方法(Github解决方案非常笨拙,因为我避免手动对vue-resource/types/vue.d.ts
进行修改),无论如何在这里提到。
使用泛型并将类型转换为Vue,例如<any>Vue.http
。但是,这可能会导致tslint警告,因此我通过使用(Vue as any)
解决了此问题,然后访问(Vue as any).http
答案 0 :(得分:4)
我认为您需要在main.ts所在的位置添加一个名为“ http.d.ts”的新定义文件,并添加以下内容:
import Vue from 'vue';
declare module 'vue/types/vue' {
interface VueConstructor {
http: any;
}
}
这应该可以解决错误。
答案 1 :(得分:0)
从评论中,我获得了this链接。您可以通读,这里有一种解决方法:
使用泛型并将类型转换为Vue,例如<any>Vue.http
。但是,这可能会导致tslint警告,因此我通过使用(Vue as any)
解决了此问题,然后访问(Vue as any).http