如何从 RTK 查询中的查询推断类型?

How to infer type from query in RTK Query?

如何推断来自查询的数据类型,以便在填充 UI 时我可以在 VS Code 中自动完成? 我一直在看官方文档中的内容,但我无法理解如何去做,

https://redux-toolkit.js.org/rtk-query/api/fetchBaseQuery

代码如下:

import {createApi, fetchBaseQuery} from '@reduxjs/toolkit/query/react'

interface WeatherQuery {
    lat: Number | null;
    lon: Number | null;
    appid: string
}

export const coordQueryApi = createApi({
    reducerPath: 'coordQueryApi',
    baseQuery: fetchBaseQuery({ baseUrl: 'https://api.openweathermap.org/data/2.5/'}),
    endpoints: (builder) => ({
        getCurrentPositionWeather: builder.query<any,WeatherQuery>({
            query: (arg) =>{
                const {lat, lon, appid} = arg
                return {
                    url: '/weather',
                    params: {lat, lon, appid}
                }
            }
        })
    })
})

export const { useGetCurrentPositionWeatherQuery } = coordQueryApi

谢谢!

您可以像这样手动定义查询结果的类型:

interface CurrentPositionWeatherResult {
  propA: string;
  propB: string;
}

getCurrentPositionWeather: builder.query<CurrentPositionWeatherResult,WeatherQuery>({

基本上,直接引用外部API类型是不行的。您需要检查 API 的定义或规范并自行定义类型。某些 API 可能会提供其类型定义代码或用于调用其 API 的客户端库,在这种情况下,您可以导入类型并直接分配它。