我正在尝试使用Axios和Typescript在React应用中编写API服务。
这是我的代码:
interface Service<T> {
GetAll?: Promise<AxiosResponse<T>>;
}
interface Example {
id: Number;
}
const ApiService2 = () => {
const Example = (): Service<Example> => {
const GetAll = (): Promise<AxiosResponse<Example[]>> => {
return axios.get<Example[]>("urlhere");
};
return {
GetAll
};
};
};
这是我的完整错误:
Type '() => Promise<AxiosResponse<Example[]>>' is missing the following properties from type 'Promise<AxiosResponse<Example>>': then, catch, [Symbol.toStringTag], finally TS2739
答案 0 :(得分:3)
问题是,您对interface Service
的定义是错误的。
GetAll
的类型不应为Promise<AxiosResponse<T>>
,而应是根据您的实现返回Promise<AxiosResponse<T>>
的函数。
因此您的Service
界面将变为:
interface Service<T> {
GetAll?: () => Promise<AxiosResponse<T>>;
}