我想将Vuejs与typescript和 gridsome 一起使用。
打字稿侧的插入方式是 gridsome-plugin-typescript 。
这是我的<script>
<script lang='ts'>
import Vue from "vue"
export default Vue.extend({
metaInfo: {
title: 'About us'
}
})
</script>
我遇到以下错误:
No overload matches this call.
The last overload gave the following error.
Argument of type '{ metaInfo: { title: string; }; }' is not assignable to parameter of type 'ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Record<string, any>>, Record<...>>'.
Object literal may only specify known properties, and 'metaInfo' does not exist in type 'ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Record<string, any>>, Record<...>>'
似乎与插件相关的东西不接受参数。但不确定。
答案 0 :(得分:0)
我似乎找到了正确的配置(vue-shims.d.ts):
OLD-错误的配置
declare module "*.vue" {
import Vue from "vue";
export default Vue;
}
declare module "vue/types/options" {
interface ComponentOptions<V extends Vue> {
metaInfo?: any;
}
}
我在这里意识到奇怪的是因为在依赖项内部: node_modules / vue-meta / types / vue.d.ts 是做同样事情的声明。此外,同一文件中的 index.d.ts 导出默认值和文字对象。
更正的代码:
declare module "*.vue" {
import * as Vue from "vue";
export default Vue;
}
您现在看到声明 import * as Vue 。
认为答案是正确的,但是如果有反馈很高兴阅读它。
答案 1 :(得分:-1)