11 points par kakasoo 2025-03-13 | 10 commentaires | Partager sur WhatsApp

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

 
metis041 2025-03-14

TypeScript, c’est toujours le GOAT.

 
kakasoo 2025-03-14

Merci à vous, qui savez à quel point TypeScript est formidable.

 
kakasoo 2025-03-14

Merci !

 
softer 2025-03-14

Super, je recommande

 
kakasoo 2025-03-14

Merci pour le pouce levé et la recommandation !

 
sunrabbit 2025-03-13

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.

 
kakasoo 2025-03-13

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.

 
wogns3623 2025-03-14

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.

 
kakasoo 2025-03-14

C’est vrai. En réalité, ça suscite peu d’écho auprès des personnes côté front-end.