vue.js 当尝试使用TypeScript而不是JavaScript时,出现错误:应为1-2个参数,但得到3.ts(2554)

km0tfn4u  于 2023-02-05  发布在  Vue.js
关注(0)|答案(1)|浏览(483)

我们有Vue.js 2.6应用程序时,我们使用JavaScript,但有一些代码写在TypeScript.我不是太在TypeScript和尝试重写代码使用Axios.它看起来如下:

1)来电者:

try {
  const params = {
    id: 1,
    inn: 2,
    withReferences: true,
  };
  const result = await gpbApi.leadService.getPartnerReferences(params);
} catch (error) {
  console.log('error = ', error);
}

2)电话:

async getPartnerReferences(params: any) {
  if (!params) return;
  const { data } = await axios.get(`${path}/GroupAccountService/PartnerReferences`, params, { 
    withCredentials: true
  });
  return data.data;
}
w9apscun

w9apscun1#

正如Quentin在注解中指出的,axios文档有一个必需参数(url)和一个可选参数(config),您的代码传递了三个参数,因此错误是准确的,并且三个参数的get调用在JS或TS中都没有执行您所期望的操作。
但是,config参数接受一个名为params的键,这很可能是您的params要去的地方。您可以使用Javascript简写,只使用名称params而不是params: params。这意味着您的修复方法只是将params移动到对象初始化器的 inside(大括号)。
如果这段代码以前可以工作,那么params可能曾经在对象初始化器中与URL位于同一行,但是被错误地移到了它的外面。

async getPartnerReferences(params: any) {
  if (!params) return;
  const { data } = await axios.get(`your.url`, {
    params, // this is now a part of the config object
    withCredentials: true
  });
  return data.data;
}

相关问题