首頁  >  問答  >  主體

當嘗試使用 TypeScript 而不是 JavaScript 時發生錯誤:預期 1-2 個參數,但得到 3.ts(2554)

<p>當我們使用 JavaScript 時,我們有 Vue.js 2.6 應用程序,但有一些程式碼是用 TypeScript 編寫的。我對 TypeScript 不太了解,並嘗試重寫使用 Axios 的程式碼。它看起來如下:</p> <p><strong>1) 來電者:</strong></p> <pre class="brush:php;toolbar:false;">try { const params = { id: 1, inn: 2, withReferences: true, }; const result = await gpbApi.leadService.getPartnerReferences(params); } catch (error) { console.log('error = ', error); }</pre> <p><strong>2) 呼叫:</strong></p> <pre class="brush:php;toolbar:false;">async getPartnerReferences(params: any) { if (!params) return; const { data } = await axios.get(`${path}/GroupAccountService/PartnerReferences`, params, { withCredentials: true }); return data.data; }</pre></p>
P粉420958692P粉420958692411 天前504

全部回覆(1)我來回復

  • 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;
    }

    回覆
    0
  • 取消回覆