修改选项
在多处共享修改选项的最佳方式之一,是使用 mutationOptions 辅助函数。该辅助函数在运行时仅返回你传入的任何内容,但配合 TypeScript 使用时具备诸多优势。你可以在一个位置定义修改的所有可能选项,并且能为所有这些选项获得类型推断和类型安全。
TypeScript
1export class QueriesService {2 private readonly queryClient = inject(QueryClient)3 4 updatePost(id: number) {5 return mutationOptions({6 mutationFn: (post: Post) => Promise.resolve(post),7 mutationKey: ['updatePost', id],8 onSuccess: (newPost) => {9 // ^? newPost: Post10 this.queryClient.setQueryData(['posts', id], newPost)11 },12 })13 }14}