metaInfo失败Gridsome-打字稿

时间:2020-07-29 00:02:24

标签: typescript vue.js gridsome

我想将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<...>>'

似乎与插件相关的东西不接受参数。但不确定。

2 个答案:

答案 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)