DeepStrictTypes : gérer plus facilement des types TypeScript complexes
(github.com/kakasoo)DeepStrictTypes est une collection de types utilitaires TypeScript conçue pour manipuler des objets imbriqués de façon plus sûre et plus pratique.
Avec les Omit ou Pick classiques, il est difficile de traiter proprement des propriétés profondément imbriquées, mais avec DeepStrictOmit et DeepStrictPick, on peut extraire précisément uniquement les parties souhaitées.
Par exemple, dans le type { user: { name: string; age: number } }, si l’on utilise DeepStrictOmit<Example, 'user.name'>, il est transformé exactement en { user: { age: number } }. À l’inverse, avec DeepStrictPick<Example, 'user.name'>, on peut ne conserver que la partie nécessaire, comme { user: { name: string } }.
Pourquoi est-ce utile ?
✔️ Pour filtrer uniquement certains champs dans une réponse d’API
✔️ Pour ne conserver que les parties voulues dans un objet imbriqué
Des utilitaires runtime comme deepStrictObjectKeys et deepStrictAssert ont aussi été ajoutés à titre expérimental.
N’hésitez pas à l’essayer et à faire vos retours ! L’intérêt porté à l’open source donne de la force au créateur !
10 commentaires
TypeScript, c’est toujours le GOAT.
Merci à vous, qui savez à quel point TypeScript est formidable.
https://github.com/sindresorhus/type-fest
Merci !
Super, je recommande
Merci pour le pouce levé et la recommandation !
Je me demande s'il y a vraiment des gens qui utilisent les types à ce point.
Je suis curieux de voir des cas d'usage concrets.
Je l’ai beaucoup utilisé quand je travaillais dans le domaine de la publicité... :)
Facebook, Google... quoi qu’il en soit, au final le domaine de la publicité ne diffère que légèrement et peut être abstrait avec des types presque identiques, donc je m’en servais quand je regroupais différents services sous un même domaine.
On dirait que c’est souvent utilisé de cette façon quand on manipule dans tous les sens les types d’enregistrements de données issus de la base de données côté serveur.
C’est vrai. En réalité, ça suscite peu d’écho auprès des personnes côté front-end.