DeepStrictTypes: Komplexe TypeScript-Typen einfacher handhaben
(github.com/kakasoo)DeepStrictTypes ist eine Sammlung von TypeScript-Utility-Typen, die entwickelt wurde, um mit verschachtelten Objekten sicherer und komfortabler zu arbeiten.
Mit herkömmlichem Omit oder Pick ist es schwierig, tief verschachtelte Eigenschaften sauber zu verarbeiten. Mit DeepStrictOmit und DeepStrictPick kann man dagegen gezielt genau die gewünschten Teile herausgreifen.
Zum Beispiel wird bei einem Typ wie { user: { name: string; age: number } } mit DeepStrictOmit<Example, 'user.name'> eine präzise Umformung zu { user: { age: number } } erreicht. Umgekehrt lässt sich mit DeepStrictPick<Example, 'user.name'> nur der benötigte Teil behalten, also { user: { name: string } }.
Warum das nützlich ist:
✔️ wenn in API-Antworten nur bestimmte Felder gefiltert werden sollen
✔️ wenn in verschachtelten Objekten nur gewünschte Teile erhalten bleiben sollen
Experimentell wurden außerdem Runtime-Utilities wie deepStrictObjectKeys und deepStrictAssert hinzugefügt.
Probiert es gern aus und gebt Feedback! Interesse an Open Source motiviert die Entwickler sehr.
10 Kommentare
TypeScript ist einfach immer der Hammer
Danke, dass Sie die Großartigkeit von TypeScript zu schätzen wissen.
https://github.com/sindresorhus/type-fest
Vielen Dank!
Gefällt mir
Vielen Dank für den Daumen hoch und die Empfehlung.
Ich frage mich, ob es überhaupt jemanden gibt, der Typen derart exzessiv verwendet.
Mich würde ein praktischer Anwendungsfall interessieren.
Ich habe das oft verwendet, als ich im Werbeumfeld gearbeitet habe... :)
Facebook, Google ... wie auch immer, letztlich lassen sich die Ad-Domains mit nur kleinen Unterschieden durch nahezu ähnliche Typen abstrahieren, sodass ich es genutzt habe, wenn unterschiedliche Services zu einer Domain zusammengefasst werden sollten.
Ich glaube, auf dem Server wird so etwas häufig verwendet, wenn man Typen von DB-Datensätzen auf verschiedene Weise verarbeitet.
Stimmt. Tatsächlich findet das bei Frontend-Leuten oft nicht so viel Anklang.