React with TypeScript - 将 Axios Get 方法转换为通用 Axios Get 方法

React with TypeScript - turn Axios Get method into Generic Axios Get Method

我正在尝试将我的 axios Get 方法变成 generic method,这样我就可以在任何需要的地方重复使用它。

我在如何让它工作方面遇到了一些麻烦。让我给你看一些代码

axios.get(`${urlUser}?userName=${getUserName()}`)
            .then((response: AxiosResponse<userProfile>) => {
                setProfile(response.data);
            })

这是我正在尝试转换为通用方法的 get 方法。 Url 和状态函数 setProfile 可以作为参数传入,但 userProfile 模型需要是通用的

export const Get = <T>(url: string, setState: any, Response: T) => {
    axios.get(url)
            .then((response: AxiosResponse<T[]>) => {
                setState(response.data);
        })
}

这是通用的转换代码。 但是,这行不通,因为在 AxiosResponse 中,我需要为响应传递某种模型。

我尝试向函数添加通用 Response 参数,但将 Response 添加到 AxiosResponse<>

中不起作用

我认为我还差得远,知道如何解决这个问题吗?

非常感谢

解决方案

export const Get = <T,>(url: string, setState: any) => {
    axios.get(url)
            .then((response: AxiosResponse<T[]>) => {
                setState(response.data);
        })
}

调用函数的地方

Get<userProfile>(`${urlUser}?userName=${getUserName()}`)