Heim >Web-Frontend >js-Tutorial >arrayToDict-Funktion im tRPC-Quellcode
In diesem Artikel analysieren wir die arrayToDict-Funktion im tRPC-Quellcode.
// 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; }
Diese Funktion ist unkompliziert. dict ist ein Objekt, das oberhalb der for-Schleife initialisiert wird. In dieser for-Schleife wird array[index] dem Element zugewiesen und dict ist ein Objekt, das Array-Indizes als Schlüssel und Werte als Array-Elemente basierend auf dem Index angibt.
Obwohl diese Funktion einfach ist, wurde in der PR viel diskutiert: https://github.com/trpc/trpc/pull/669, bevor diese Lösung KATT (Ersteller von tRPC) vorgestellt wurde.
Bei dieser Pull-Anfrage ging es um — Fix: Stapelverarbeitung mit zod .optional()-Eingabe.
PR-Beschreibung:
- JSON.stringify([undefiniert]) === [null]
– Dies führt zu Problemen mit .optional() Zod-Schemas, da ein Objekt oder ein undefiniertes Objekt erwartet wird, nicht null
– Behoben durch einen hässlichen Hack, der den Validator zweimal ausführt, wenn er fehlschlägt, wenn die Roheingabe === null war.
- behoben durch die Idee von @simonedelmann
Ich würde empfehlen, dieses Pull-Request-Gespräch durchzugehen, um Ihnen einen Einblick in die Art und Weise zu geben, wie Entscheidungen getroffen werden. Dieses Gespräch zeigt, wie Ideen herumgereicht werden, und es wird auch darüber gesprochen, was aufgrund einer Idee kaputt gehen könnte, wenn es sich nur um einen Grenzfall handelt und sie sich schließlich für die arrayToDict-Idee entscheiden.
In dieser Pull-Anfrage finden Sie auch die Github-App „All Contributors“, die Folgendes bietet:
Zuschreibung an den Mitwirkenden basierend auf einer Idee. Darum geht es bei All Contributors: Anerkennung aller Mitwirkenden, nicht nur derjenigen, die Code vorantreiben. Mit „Alle Beiträge“ können Sie, selbst wenn Sie eine Idee präsentieren, ohne Code zu schreiben, sie mit einem Kommentar zum Mitwirkenden machen:
“
@Alle Mitwirkenden fügen @Benutzernamen für Bewertungen hinzu
„
und @all-contributors fügt markierten Benutzer als Mitwirkender hinzu.
Bei Thinkthroo studieren wir große Open-Source-Projekte und stellen Architekturführer zur Verfügung. Wir haben mit Rückenwind resubale Komponenten entwickelt, die Sie in Ihrem Projekt nutzen können. Wir bieten Next.js-, React- und Node-Entwicklungsdienste an.
Buchen Sie einen Termin mit uns, um Ihr Projekt zu besprechen.
https://github.com/trpc/trpc/blob/next/packages/client/src/links/internals/httpUtils.ts#L57
https://github.com/trpc/trpc/pull/669
Das obige ist der detaillierte Inhalt vonarrayToDict-Funktion im tRPC-Quellcode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!