在使用 vue-class-component
的 Vue 2.0 Typescript 项目升级到 Vue 2.5 后,我在声明文件中收到以下错误:
ERROR in /myproject/node_modules/vue-class-component/lib/declarations.d.ts
(6,33): error TS2702: 'Vue' only refers to a type,
but is being used as a namespace here.
事实上,declaration.d.ts
似乎使用 Vue
作为命名空间:
options: Vue.ComponentOptions<Vue>
但是我该如何解决这个问题呢?这是vue-class-component
申报文件中的疏忽/故障吗?
整个声明文件:
import Vue from 'vue';
export declare type VueClass = {
new (): Vue;
} & typeof Vue;
export declare type DecoratedClass = VueClass & {
__decorators__?: ((options: Vue.ComponentOptions<Vue>) => void)[];
};
我通过显式导入组件选项来修复它,这似乎有效:
import Vue from 'vue';
import {ComponentOptions} from 'vue'
let options : ComponentOptions<Vue>;
Vue 的声明文件最近更新了,因此请确保 vue-class-component
和vue
都是最新的。由于此更新,您可能必须按以下方式引用类型:
import Vue, * as VueTypes from "vue"
let x: VueTypes.ComponentOptions<any>;