RTK Query出现TS(2742)类型引用错误,如何修复?
修复RTK Query生成Hook的TS(2742)错误
方法一:手动添加类型注解
直接从@reduxjs/toolkit/query/react导入UseQueryHook类型,为每个导出的Hook显式标注类型,解决类型推断的可移植性问题:
import { createApi, fetchBaseQuery, UseQueryHook } from '@reduxjs/toolkit/query/react' // 可提前定义接口来约束返回数据类型,示例: // interface ChapterList { // id: number; // title: string; // } export const postsApi = createApi({ reducerPath: "api", baseQuery: fetchBaseQuery({ baseUrl: "url" }), endpoints: (builder) => ({ getChaptersList: builder.query({ query: () => "/chapters-list/", }), getChapter: builder.query({ query: (chapter:string) => `/chapters-list/${chapter}/`, }), }), }); // 替换unknown为实际返回数据的接口类型(比如上面的ChapterList) export const useGetChaptersListQuery: UseQueryHook<unknown, void> = postsApi.useGetChaptersListQuery; export const useGetChapterQuery: UseQueryHook<unknown, string> = postsApi.useGetChapterQuery;
方法二:更新Redux Toolkit版本
该错误多由旧版RTK的类型推断bug导致,升级到最新稳定版即可自动修复:
npm install @reduxjs/toolkit@latest # 或使用yarn yarn add @reduxjs/toolkit@latest
方法三:临时调整TypeScript配置(不推荐)
若暂时无法升级或添加类型注解,可在tsconfig.json中关闭相关严格检查选项,注意这会影响其他类型推断的准确性,仅作应急方案:
{ "compilerOptions": { "preserveValueImports": false } }
内容的提问来源于stack exchange,提问作者itan mare
相关产品推荐
相关产品推荐

