小编jer*_*rfp的帖子

调用 axios 时出现打字稿错误 - 没有重载与此调用匹配

我正在调用 axios 并传入一个配置对象,如下所示:

const req = { method, url, timeout: 300000, headers: { 'Content-Type': 'application/json' } }

axios(req)

Run Code Online (Sandbox Code Playgroud)

我收到一个打字稿错误,显示“没有重载与此调用匹配”。axios 函数采用以下类型的配置对象AxiosRequestConfig

axios(config: AxiosRequestConfig): AxiosPromise<any>

供您参考,以下是类型的AxiosRequestConfig外观以及类型Method

interface AxiosRequestConfig {
  url?: string;
  method?: Method;
  baseURL?: string;
  transformRequest?: AxiosTransformer | AxiosTransformer[];
  transformResponse?: AxiosTransformer | AxiosTransformer[];
  headers?: any;
  params?: any;
  paramsSerializer?: (params: any) => string;
  data?: any;
  timeout?: number;
  timeoutErrorMessage?: string;
  withCredentials?: boolean;
  adapter?: AxiosAdapter;
  auth?: AxiosBasicCredentials;
  responseType?: ResponseType;
  xsrfCookieName?: string;
  xsrfHeaderName?: string;
  onUploadProgress?: (progressEvent: any) => void;
  onDownloadProgress?: …
Run Code Online (Sandbox Code Playgroud)

javascript typescript axios

9
推荐指数
1
解决办法
8995
查看次数

TypeScript 丢失了回调函数内部的类型知识(例如 .filter 和 .some 回调函数)

我看到一些我不理解的非常奇怪的 TypeScript 行为。这是场景:

我有三个不同的界面来描述一个事件。他们看起来像这样

interface ReceiveMessageEvent {
  event: 'receive-message';
  payload: {
    action: 'receive-message';
    businessSMSId: number;
    message: {
      businessSMSId: number;
      from: string;
      to: string;
    };
  };
}

interface ReadMessageEvent {
  event: 'read-message';
  payload: {
    action: 'read-message';
    businessSMSId: number;
    customerNumber: string;
    inboxNumber: string;
  };
}

interface SetThreadsEvent {
  event: 'set-threads';
  threads: any[];
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,所有三个接口都有event一个特定字符串的属性,这意味着只能有三个可能的选项,“receive-message”、“read-message”或“set-threads”。这很重要,因为接下来我有一个 switch 语句,其中的情况是此事件属性:

switch (action.payload.event) {
  case 'receive-message':
    // ...
  case 'read-message':
    // ...
  case 'set-threads':
    // ...
}
Run Code Online (Sandbox Code Playgroud)

因此,由于 case 是事件属性,我希望 TypeScript 能够根据我们所处的情况知道其余数据的形状。现在,是否正确执行此操作(正如我所期望的那样),除了在一个特定的场景中,这就是我的困惑所在。这种情况是当我在 .filter 方法的回调函数内部时。

例如: …

typescript react-redux

3
推荐指数
1
解决办法
233
查看次数

标签 统计

typescript ×2

axios ×1

javascript ×1

react-redux ×1