小编kcc*_*ket的帖子

为什么TypeScript无法识别Vue插件的模块扩充?

我正在构建一个Vue项目,以学习Vue和TypeScript。我选择了该项目的大量静态数据,以作为Vue插件提供给组件,从而为Vue原型添加了一个属性。

import _Vue from 'vue';

export default function myPlugin(Vue: typeof _Vue): void {
  Vue.prototype.$myPlugin = { one: 1, two: 2 };
}
Run Code Online (Sandbox Code Playgroud)

我遵循Peter Kuhn帖子中的建议,在test-plugin.d.ts文件中定义了属性类型。

import Vue from 'vue';

declare module 'vue/types/vue' {
    interface Vue {
        $myPlugin: object;
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,我importuse()插件。

import Vue from 'vue';
import App from './App.vue';
import MyPlugin from './test-plugin';

Vue.use(MyPlugin);

new Vue({
  render: (h) => h(App),
}).$mount('#app');
Run Code Online (Sandbox Code Playgroud)

但是,当我在单文件Vue组件中引用该属性时,vscode和TypeScript编译器均会引发该属性不存在的错误。

<script lang="ts">
import Vue from 'vue';

export default Vue.extend({ …
Run Code Online (Sandbox Code Playgroud)

typescript vuejs2

6
推荐指数
2
解决办法
3327
查看次数

标签 统计

typescript ×1

vuejs2 ×1