Heim  >  Fragen und Antworten  >  Hauptteil

Fehler beim Versuch, TypeScript anstelle von JavaScript zu verwenden: 1-2 Argumente erwartet, aber 3.ts erhalten (2554)

<p>Wenn wir JavaScript verwenden, haben wir eine Vue.js 2.6-Anwendung, aber ein Teil des Codes ist in TypeScript geschrieben. Ich weiß nicht viel über TypeScript und den Versuch, den Code mit Axios neu zu schreiben. Es sieht so aus: </p> <p><strong>1) Anrufer: </strong></p> <pre class="brush:php;toolbar:false;">try { const params = { ID: 1, Gasthof: 2, withReferences: wahr, }; const result = waiting gpbApi.leadService.getPartnerReferences(params); } Catch (Fehler) { console.log('error = ', error); }</pre> <p><strong>2) Aufruf: </strong></p> <pre class="brush:php;toolbar:false;">async getPartnerReferences(params: any) { if (!params) return; const { data } =wait axios.get(`${path}/GroupAccountService/PartnerReferences`, params, { withCredentials: true }); return data.data; }</pre></p>
P粉420958692P粉420958692411 Tage vor501

Antworte allen(1)Ich werde antworten

  • P粉668113768

    P粉6681137682023-09-04 10:33:29

    正如 Quentin 在评论中指出的那样,axios 文档 有一个必需参数 (url) 和一个可选参数 (config)。您的代码传递了三个参数,因此错误是准确的,并且三参数 get 调用没有执行您在 JS 或 TS 中所期望的操作。

    但是,config 参数接受一个名为 params 的键,这很可能是您的 params 的预期位置。您可以使用 Javascript 简写只需使用名称 params 而不是 params: params。这意味着您的修复只需将 params 移动到对象初始值设定项的内部(大括号)。

    如果此代码之前有效,则 params 可能曾经位于与 URL 同一行的对象初始值设定项中,但被错误地移到了 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;
    }

    Antwort
    0
  • StornierenAntwort