2739类型缺少类型的以下属性

时间:2020-03-04 21:26:36

标签: reactjs typescript axios

我正在尝试使用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

1 个答案:

答案 0 :(得分:3)

问题是,您对interface Service的定义是错误的。

GetAll的类型不应为Promise<AxiosResponse<T>>,而应是根据您的实现返回Promise<AxiosResponse<T>>的函数。

因此您的Service界面将变为:

interface Service<T> {
  GetAll?: () => Promise<AxiosResponse<T>>;
}