如何从 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 的客户端库,在这种情况下,您可以导入类型并直接分配它。
如何推断来自查询的数据类型,以便在填充 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 的客户端库,在这种情况下,您可以导入类型并直接分配它。