如何在增强型端点/注入型端点中用正确的TS将api包装成RTK?

48 阅读1分钟

我有一个来自npm的包,它用createApi()为我创建了基本的api,在同一个文件中,它用我的自定义函数包装了这个api,我可以用enhanceEndpoints来扩展它,这是两个不同的文件,ts不能查看我在自定义函数中提供的类型,有可能把它变成两个文件,并强迫ts使用它吗?

为了更好地理解,我的主文件是这样的。

export const api = createApi({
    reducerPath: 'api/test',
    baseQuery  : fetchBaseQuery({
        baseUrl: '/',
        //some options
    }),
    endpoints: (build) => ({
//some initial endpoints
    })
});


customFunctionProvided(api); 
export default api;

第二个文件。

export const customFunctionProvided = (api: typeof apiType) => {
    api.enhanceEndpoints({
        //some logic
    }).injectEndpoints({ endpoints: (builder) => ({
        getSomething: builder.query({
            query: () => ({
                url: 'url',
            })
        }),
        
    }) });
};

所以,我在我的项目中导入了第一个文件,但是ts找不到例如useGetSomethingQuery()......(它有办法解决吗?