首頁  >  文章  >  web前端  >  tRPC原始碼中的arrayToDict函數

tRPC原始碼中的arrayToDict函數

Barbara Streisand
Barbara Streisand原創
2024-11-04 05:00:01604瀏覽

在本文中,我們分析了 tRPC 原始碼中的 arrayToDict 函數。

// https://github.com/trpc/trpc/pull/669
function arrayToDict(array: unknown[]) {
 const dict: Record<number, unknown> = {};
 for (let index = 0; index < array.length; index++) {
 const element = array[index];
 dict[index] = element;
 }
 return dict;
}

這個函數很簡單。 dict 是在 for 迴圈上方初始化的物件。在這個for循環中,array[index]被分配給element,dict是一個對象,數組索引作為鍵,值是基於索引的數組項。

雖然這個函數很簡單,但在將此解決方案提交給 KATT(tRPC 的創建者)之前,PR 中討論了很多內容:https://github.com/trpc/trpc/pull/669。

此拉取請求是關於 — 修復:使用 zod .optical() 輸入進行批次處理。

公關描述:

- JSON.stringify([未定義]) === [null]

- 這會導致 .optional() zod 架構出現問題,因為它需要一個對像或未定義的對象,而不是 null

- 由醜陋的駭客修復,如果原始輸入 === null,則驗證器失敗時運行驗證器兩次。

- 由 @simonedelmann 的想法修復

我建議您仔細閱讀此拉取請求對話,以便您深入了解如何制定決策。這段對話展示了想法是如何反彈的,也討論瞭如果這只是一個邊緣情況,那麼基於一個想法可能會破壞什麼,並且他們最終選擇使用 arrayToDict 想法。

在此拉取請求中,您還可以找到所有貢獻者 Github 應用程序,它提供

基於想法的貢獻者歸屬。這就是「所有貢獻者」的意義所在——認可所有貢獻者,而不僅僅是那些推送程式碼的人。透過 All Contributes,即使您在不編寫任何程式碼的情況下提出想法,您也可以透過評論讓他們成為貢獻者:



@all-contributors 新增@username 進行評論

並且@all-contributors 將標記的使用者加入為貢獻者。

關於我們:

在 Thinkthroo,我們研究大型開源專案並提供架構指南。我們開發了使用 tailwind 建立的 resubale 元件,您可以在您的專案中使用它們。我們提供 Next.js、React 和 Node 開發服務。

與我們預約會面討論您的專案。

arrayToDict function in tRPC source code

arrayToDict function in tRPC source code

參考資料:

  1. https://github.com/trpc/trpc/blob/next/packages/client/src/links/internals/httpUtils.ts#L57

  2. https://github.com/trpc/trpc/pull/669

以上是tRPC原始碼中的arrayToDict函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn