Как создавать типы конечных точек RTK-запросов при использовании разделения кода

#typescript #rtk-query

Вопрос:

В настоящее время я создаю пакет rtk-запросов для приложения, в котором я использую разделение кода (с помощью injectEndpoints , поскольку, вероятно, будут задействованы сотни конечных точек). Тем не менее, я также хотел бы реализовать крючок предварительной выборки, аналогичный автоматическому крючку предварительной выборки в документах.

Есть ли способ создать правильные типы машинописных текстов для этих конечных точек? Приведенный выше крюк определяет типы конечных точек как type EndpointNames = keyof typeof api.endpoints , однако все мои конечные точки определены следующим образом (как описано в документах):

 export const emptySplitApi = createApi({
  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
  endpoints: () => ({}), //
})
 

Если это невозможно, каков наилучший способ экспорта нескольких usePrefetch крючков из разных injectEndpoints методов?

Ответ №1:

Я бы просто экспортировал полный объект api из каждого файла, а затем сказал бы api1.usePrefetch() : api2.usePrefetch() .

Таким образом, вы также убедитесь, что был загружен правильный файл, чтобы он был введен. Если бы вы вызвали это в родительском api, вы никогда не смогли бы быть уверены, что конечная точка уже была введена.