Vue Apollo v4 和 Composition API 中的突变类型

Posted

技术标签:

【中文标题】Vue Apollo v4 和 Composition API 中的突变类型【英文标题】:mutation Typings in Vue Apollo v4 and Composition API 【发布时间】:2020-11-30 23:00:59 【问题描述】:

告诉 typescript 的正确方法是什么,VariablesmyMutation 函数的参数的接口?

    interface Variables 
      uuid: string;
      value: string;
    

    const  mutate: myMutation  = useMutation(myGqlMutation);

我想避免这样使用 myMutation:

 myMutation(
     uuid: '....',
     value: '....',
  as any); // get rid of any here ... 

【问题讨论】:

【参考方案1】:

用generic注释useMutation,像这样:

interface Variables 
  uuid: string;
  value: string;


const  mutate: myMutation  = useMutation< mutation: Variables >(myGqlMutation);

另外,请查看docs

【讨论】:

似乎不适用于我的 Vue Apollo,因为 useMutation 的第一个参数是结果类型。 .d.ts 看起来像这样:` /** * 使用需要变量的突变。 */ export declare function useMutation(document: DocumentNode | ReactiveFunction, options: UseMutationOptionsWithVariables | ReactiveFunction>): UseMutationReturn; `

以上是关于Vue Apollo v4 和 Composition API 中的突变类型的主要内容,如果未能解决你的问题,请参考以下文章

使用 Apollo-Client 对 GitHub API v4 进行身份验证

如何使用 @vue/composition-api 和 nuxt.js 获取 vue-apollo 实例

Vue-Apollo 和查询自动完成

具有多个别名和 Apollo (Vue.js) 的 GraphQL 查询

Vue/Apollo:apollo 会关心缓存已经访问过的页面,还是我必须将它们保存在我的商店中?

为啥用 vue-apollo 在两个独立组件之间共享组件数据?